不平衡分区会影响合并排序的复杂性

时间:2017-11-26 06:38:46

标签: algorithm sorting mergesort

我知道合并排序的复杂性是(n logn)所有情况但是,如果切割或分区是不平衡的,如一边是4,另一边是5, 例如。 9元素数组会有4个索引的切割,所以这种不平衡会导致复杂性从n logn变化......

enter image description here

就像它从n log变为任何其他形式如quicksort,最好的情况是n logn但不平衡枢轴导致从n logn转换为n2

1 个答案:

答案 0 :(得分:1)

好吧因此,对于所有个案,Merge Sort的时间复杂度为Θ(n.log n)。 这将包括所讨论的尺寸'n'为奇数的情况。

这是因为当您考虑Big-Oh表示法中的时间复杂度时,您总是删除最终计算复杂性时可能出现的低阶项。如果'n'是奇数,你只需要考虑一些额外的低阶项,但它们不会影响复杂性。有关进一步说明,请参阅以下示例。

<强> E.g。 'n'是术语的数量,'c'是分割和合并的恒定时间。

在计算Merge排序的复杂性时,我们得到:

cn(log n + 1)。 (这里'log n + 1'给出了树中的级别数)

然而,当在Big-Oh中表示时,低阶项'+1'和常数c被丢弃,因此我们得到Θ(n.log n)。

同样地,在'n'是奇数的情况下,你会得到一些额外的低阶项到这个最终的复杂性,但它们并不重要,因为它们会被丢弃。当你怀疑时,复杂性不会增加。希望很清楚。

如果没有,请参阅此链接以更好地理解:https://www.khanacademy.org/computing/computer-science/algorithms/merge-sort/a/analysis-of-merge-sort