哪种排序算法更好?

时间:2017-12-09 16:39:38

标签: algorithm sorting

我已经阅读了有关块排序算法的内容,并想知道为什么它不受欢迎,例如quicksort,即使它比根据此 wikipedia page中的表的quicksort更好。块排序算法的复杂性最坏情况是nlog(n),内存复杂度是常数,而quicksort分别有n ^ 2和log(n)。提前谢谢。

1 个答案:

答案 0 :(得分:2)

QuickSort比mergesort更快,因为它没有循环的递归,其中mergesort必须复制它在aux数组中的元素还有一件事:

O(NlogN)是mergesort所做的比较次数,但它也是6NlogN数组的加入次数。

Quicksort使用NlogN,但是如果你在排序之前总是洗牌,那么你可以得到一些可能的保证,你从来没有遇到过最糟糕的情况。

有一件事我会说Big-O表示法并不是比较两种排序算法运行时间的完美方法。正如我所说,Quicksort使用NlogN比较排序数组,但只有当我使用BigO表示法时才会这样,使用波浪符号quicksort会使〜1.39NlogN进行比较。