所有这些排序算法的平均情况为O(n log n)
,所以我想知道如果我可以运行测试但不知道正在运行哪种排序算法,我将如何区分这三种排序算法。
问问题
6670 次
2 回答
1
您可能需要关注的堆和合并排序之间的另一个区别是,堆不是稳定排序,但合并排序是。
这是一个表格(下面的链接),您可以(几乎)找到有关您想要的比较排序算法的任何信息。
https://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms
于 2013-05-16T11:28:01.163 回答
-2
heapsort 是一种就地排序算法,我们不需要额外的存储空间来对元素进行排序,但合并排序不是就地排序算法,我们需要额外的存储空间,在合并过程中,对元素进行排序。快速排序的最坏情况运行时间是O( n^2)区分它形成堆排序和归并排序
在许多情况下,这些算法的性能是不同的。
For example.
if all input element are same.
then, heapsort will run in O(n) time
quicksort will run in O(n^2) time. (if last element is a pivote element)
and,
mergesort is going to take O(logn) time.
于 2013-05-16T11:08:48.157 回答