408得票29回答
为什么快速排序比归并排序更好?

面试时有人问了我这个问题。它们都是O(nlogn)的,但大多数人使用快速排序而不是归并排序。为什么呢?

152得票6回答
为什么Java的Arrays.sort方法针对不同类型使用两种不同的排序算法?

Java 6 的 Arrays.sort 方法会根据数组的类型使用快速排序或归并排序。虽然这两种算法都是 O(n log(n)),但我认为大多数情况下快速排序比归并排序更快且需要更少的内存。我的实验支持了这一点。那么为什么 Java 会为不同类型的数组使用不同的算法呢?

133得票15回答
快速排序:选择枢轴

在实现快速排序算法时,你需要选择一个枢轴(pivot)。但是当我看到以下类似的伪代码时,我不清楚我应该如何选择枢轴。是列表的第一个元素吗?还是其他东西? function quicksort(array) var list less, greater if length(a...

125得票12回答
为什么极简示例的Haskell快速排序不是一个“真正”的快速排序?

Haskell的网站介绍了一个非常吸引人的只有5行的快速排序函数,如下所示。 quicksort [] = [] quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater) where les...

121得票12回答
快速排序与堆排序

快速排序和堆排序都是原地排序算法。哪个更好?在什么应用场景下,两者中的哪一个更受青睐?

114得票37回答
用Python实现快速排序

我完全是Python的新手,正在尝试在其中实现快速排序算法。 请问是否有人能帮我完成我的代码呢? 我不知道如何将这三个数组连接起来并打印出它们。def sort(array=[12,4,5,6,7,3,1,15]): less = [] equal = [] great...

87得票6回答
Timsort和快速排序的比较

为什么我大多数时候听说快速排序是最快的整体排序算法,但根据维基百科,Timsort似乎表现更好?

87得票7回答
O(N log N)复杂度 - 类似于线性时间复杂度吗?

所以我认为我会因为提出如此琐碎的问题而被埋没,但是我对某些事情感到有些困惑。 我在Java和C中实现了快速排序算法,并进行了一些基本比较。在100,000个随机整数上,结果显示出两条直线,其中C比Java更快4ms。 我的测试代码可以在这里找到; android-benchmarks...

77得票3回答
双轴快速排序和快速排序有什么区别?

我以前从未见过双轴快速排序。 它是快速排序的升级版吗? 那么双轴快速排序和快速排序有什么区别?

66得票7回答
为什么快速排序的时间复杂度是n log n?直观解释。

有没有人能够用“简单易懂”的方式,但又正式地解释快速排序算法为什么是O(n log n)的?据我所知,快速排序需要对n个元素进行一次遍历,并且它会重复执行log n次...我不确定如何用语言表达为什么它要重复执行log n次。