部分排序一些数字已经排序的数组

use*_*638 3 c++ sorting algorithm

我必须按降序对数组进行部分排序,其中某些数字可能已经排序.

他们的任何功能是否可以有效地执行它或任何有效的算法.

var*_*tec 7

Timsort专为此案例而设计.

Timsort是一种混合排序算法,源自合并排序和插入排序,旨在很好地处理各种真实数据.它是由Tim Peters在2002年发明的,用于Python编程语言.该算法查找已经排序的数据的子集,并使用子集更有效地对数据进行排序.

另一种选择是Smoothsort,也是为了利用部分排序的数据而设计的.

它是由Edsger Dijkstra在1981年开发的heapsort的变体.像heapsort一样,smoothsort的上限是O(n log n).smoothsort的优点是,如果输入已经在某种程度上排序,它接近O(n)时间,而无论初始排序状态如何,heapsort平均为O(n log n).