每个元素 array 必须实现 IComparable 接口,才能使用中的每个其他元素的比较 array。
如果未成功完成排序,则结果不确定。
此方法使用反省排序 (introsort) 算法,如下所示︰
-
如果分区大小少于 16 个元素,它使用insertion sort 算法。
-
如果分区数超过 2 * 日志N, ,其中 N 是范围的输入数组,它使用 Heapsort 算法。
-
否则,它使用 Quicksort 算法。
此实现将执行不稳定排序;也就是说,如果两个元素相等,可能不会保留它们的顺序。 与此相反,稳定排序保留相等的元素的顺序。
对于在最坏情况下使用 Heapsort 和快速排序算法排过序的数组,此方法为 O (n 日志 n) 操作,其中 n 是 Length 的 array。