首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在归并排序算法分析中,' 6n‘(6n (logn+1)= 6nlogn+6n )是什么?

在归并排序算法分析中,' 6n‘(6n (logn+1)= 6nlogn+6n )是什么?
EN

Stack Overflow用户
提问于 2016-09-20 13:53:17
回答 2查看 459关注 0票数 0

实现合并所需的操作数为:

:6n (logn+1)= 6nlogn+6n。

logn+1是合并排序中的层数。这里的6n是什么?

EN

回答 2

Stack Overflow用户

发布于 2016-09-20 14:55:21

在粗略的合并排序的情况下:两次读取以比较两个元素,一次读取和一次写入以将较小的元素复制到工作数组,然后另一次读取和另一次写入以将元素复制回原始数组,对于每个元素总共6次存储器访问(除了边界情况,例如到达运行结束,在这种情况下,其他运行的其余部分只是复制而不进行比较)。更优化的合并排序通过交替合并的方向(如果是自下而上的合并传递)或递归级别(如果是自上而下的合并传递)来避免回写步骤,从而将6减少到4。如果一个元素适合寄存器,则在比较之后,该元素将在寄存器中,并且不需要重新读取,从而将6减少到3。

票数 2
EN

Stack Overflow用户

发布于 2016-09-20 14:10:05

我不确定“6n是什么”是什么意思?如果你想知道算法的复杂度(合并排序),它可以简化为nlog(n)。你可以忽略你问题中的系数,因为当考虑到大O复杂度时,它们可以忽略不计。在计算nlog(n) +n时,您还可以忽略n,因为它的增长速度比nlog(n)慢得多。这就给您留下了nlog(n)的复杂性。

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

https://stackoverflow.com/questions/39586636

复制
相关文章

相似问题

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