java排序的過程描述
雙軸快速排序是對普通快速排序的優化TimSort 算法實際上是對歸併排序的一系列優化
各種排序的時間複雜度與空間複雜度
java排序爲什麼採用歸併排序
1、首先當排序數量大於286且連續性好(有序情況好)的時候纔會採用Timsort,連續性不好還會使用雙軸快排
2、如果連續性好的情況下用別管怎麼選擇分區點,快排時間複雜度都可能退化O(n²),所以這種情況要避免使用快排
3、Timsort就是針對這種連續性好的情況針對歸併排序的優化,優化的方向如下:
1、Timsort是穩定的算法,當前排序的數組中已經有排序好的數,它的時間複雜度會小於O(nlogn)
2、最壞情況下Timsort算法需要的臨時空間是n/2,在最好情況下,它只需要一個很小的臨時存儲空間
參考文檔:https://www.jianshu.com/p/892ebd063ad9