以N的方式合并时间复杂度 [英] Time complexity using N way Merge

查看:163
本文介绍了以N的方式合并时间复杂度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我会在2路合并排序算法,如果我们可以得到在时间上更好的收益想通过降低合并通行证。

I was going over the 2 way merge sort algorithm and was thinking if by reducing the merge passes can we get better gain in terms of time.

如在2路合并,我们有以下的复发:

E.g in a 2 way merge we have the following recurrence:

T(N)= 2T(N / 2)+ O(N)

T(n) = 2T(n/2) + O(n)

和这个有N.log-BASE2(N)的时间复杂度

and this has a time complexity of N.log-base2(N)

如果我把这个问题由4和合并4子阵列我会得到

if I divide the problem by 4 and merge 4 sub arrays I will get

T(N)= 4T(N / 4)+ O(N)

T(n) = 4T(n/4) + O(n)

这应该有N.log-base4的时间复杂度(N)

and this should have a time complexity of N.log-base4(N)

一直以来,合并的遍数减少了,这应该是一些实施归并排序时要考虑的?

Since, the number of merge passes has reduced, should this be something to consider when implementing merge sort ?

例如,使用的64个元素的第一种方法的数组将有6张通行证,并使用第二种方法将有3次通过。

e.g with an array of 64 elements the first approach will have 6 passes and using the second approach it will have 3 passes.

编辑:

好了,有2T(N / 2),我们正在做的比较ň每次传球和4T(N / 4),我们最终做每道3 * N的比较?什么运动部件造成arrary的成本,这是否保持同样的在每遍?

Ok, so with 2T(n/2) we are doing N comparisons per pass and with 4T(n/4) we end up doing 3*N comparisons per pass ? What about the cost of moving elements to result arrary, does that remain same at each pass ?

推荐答案

需要注意的是基4日志的数量是完全一半的基2日志的数量;因此,你只引进一个常数因子加速。除非你不是,因为你在实际的合并成本推出类似的常数因子SLOWDOWN(2路合并需要每件1相比,4路,可能需要最多3个)。因此,尽管可能会减少,通行证,通行证各自更昂贵。所以,你复杂的codeA公平一点,而利益是有问题。

Note that the base-4 log of a number is exactly half the base-2 log of a number; thus, you're only introducing a constant-factor speedup. Except you're not, because you introduce a similar constant-factor SLOWDOWN in the cost of the actual merging (2-way merge needs 1 comparison per item, 4-way may need up to 3). So while there may be fewer passes, the passes are each more costly. So you've complicated the code a fair bit, and the benefits are in question.

这篇关于以N的方式合并时间复杂度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆