0

所有这些排序算法的平均情况为O(n log n),所以我想知道如果我可以运行测试但不知道正在运行哪种排序算法,我将如何区分这三种排序算法。

4

2 回答 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 回答