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