檢驗乙個演算法的優劣的很重要乙個標準就是其演算法複雜度。
各種常用排序演算法複雜度表
類別
排序方法
時間複雜度
空間複雜度
穩定性
平均情況
最好情況
最壞情況
輔助儲存
插入排序
直接插入
o(n2
)
o(n)
o(n2
)
o(1)
穩定
shell排序
o(n
1.3)
o(n)
o(n
2)
o(1)
不穩定
選擇排序
直接選擇
o(n2
)
o(n2
)
o(n2
)
o(1)
不穩定
堆排序
o(nlog2
n)
o(nlog2
n)
o(nlog2
n)
o(1)
不穩定
交換排序
氣泡排序
o(n2
)
o(n)
o(n2
)
o(1)
穩定
快速排序
o(nlog2
n)
o(nlog2
n)
o(n
2)
o(nlog2
n)
不穩定
歸併排序
o(nlog2
n)
o(nlog2
n)
o(nlog2
n)
o(1)
穩定
基數排序
o(d(r+n))
o(d(n+rd))
o(d(r+n))
o(rd+n)
穩定
注:基數排序的複雜度中,r代表關鍵字的基數,d代表長度,n代表關鍵字的個數
排序演算法複雜度
在這篇裡,來記述下排序演算法複雜度,空間 時間 時間複雜度 對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。空間複雜度 是指演算法在計算機內執行時所需儲存空間的度量,它也是資料規模n的函式。穩定 如果a原本在b前面,而a b,排序之後a仍然在b的前面。不穩定 如果a原本在b的前面,而...
排序演算法複雜度
時間複雜度 基數排序的空間複雜度為o n 排序方法 最好情況 最壞情況 平均情況 穩定性 空間複雜度 氣泡排序 o n o n2 o n2 穩定 快速排序 o nlogn o n2 o nlogn 不穩定 簡單選擇排序 o n2 不穩定 堆排序 o nlogn 不穩定 直接插入排序 o n o n2...
排序演算法 時間複雜度和空間複雜度
常數階o 1 無論 執行了多少行,只要沒有迴圈複雜結構,那麼這個的時間複雜度就是o 1 o 1 時間複雜度 沒有迴圈結構的順序執行,無論執行多少行,時間複雜度均為o 1 public static voido1 對數階o log2n o log2n 時間複雜度 此處 i 以二倍的速度增長,也就是說到...