合并快速和堆排序之间的效率差异

时间:2013-05-16 11:01:05

标签: algorithm sorting

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

2 个答案:

答案 0 :(得分:1)

你可能想要关注的Heap和Merge排序之间的另一个区别是,Heap不是稳定排序,而是Mergesort。

这是一个表格(下面的链接),您可以找到(几乎)有关您想要的比较排序算法的任何信息。

https://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms

答案 1 :(得分:-2)

heapsort是一个就地排序算法,我们不需要额外的存储来对元素进行排序,但mergesort不是就地排序算法,我们需要额外的存储,在合并过程中,对元素进行排序。快速排序的最坏情况运行时间是 O(n ^ 2),从而将其区分为heapsort和mergesort

在许多情况下,这些算法的性能不同。

    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.