首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tim排序合并数组部件

Tim排序合并数组部件
EN

Stack Overflow用户
提问于 2018-05-20 17:56:39
回答 1查看 91关注 0票数 0

假设我得到了这些整数6,1,4,2,5,9,6,3,4,并且run的大小是2,所以我们从插入排序开始,然后得到以下子数组:

1-6,2-4,1-5,6-9,3-4

我的问题是如何合并它们以获得排序数组??我的意思是,我是否合并了每两个数组,然后再合并其他数组等等?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-21 13:19:37

创建初始运行后,然后合并运行。Timsort使用堆栈来跟踪运行边界,并使用堆栈中的前3个条目来决定合并哪个项,以便在保持“稳定”的同时“平衡”合并。可以使用队列(FIFO)而不是堆栈(LIFO) (虽然我不确定这在技术上是否仍然是时间排序)。对于10个元素,运行大小为3将减少一次合并传递。Tim排序通常使用较大的最小运行大小,32到64 (包括在内),如果自然运行小于计算的理想最小运行大小,则使用插入排序强制最小运行大小。链接到wiki文章:

https://en.wikipedia.org/wiki/Timsort

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50437824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档