**資料結構(10)——排序十
四、排序(sort)
《thinking in algorithm》12.詳解十一種排序演算法
排序法平均時間
最差情形
穩定度額外空間
備註冒泡
o(n2)
o(n2)
穩定o(1)
n小時較好
交換o(n2)
o(n2)
不穩定o(1)
n小時較好
選擇o(n2)
o(n2)
不穩定o(1)
n小時較好
插入o(n2)
o(n2)
穩定o(1)
大部分已排序時較好
基數o(logrb)
o(logrb)
穩定o(n)
b是真數(0-9),
r是基數(個十百)
shell
o(nlogn)
o(ns) 1
不穩定o(1)
s是所選分組
快速o(nlogn)
o(n2)
不穩定o(nlogn)
n大時較好
歸併o(nlogn)
o(nlogn)
穩定o(1)
n大時較好
堆o(nlogn)
o(nlogn)
不穩定o(1)
n大時較好
幾種STL排序演算法比較
接著上一回的說,對 stl幾種排序演算法做一比較,比較並不全面,僅僅對 std sort std stable sort c 標準庫qort 和std heap sort 做一比較,因為這是用的最多的,其底層實現已足夠說明日常生活中排序問題所需要考慮的問題。程式 如下 1 2 3 45 6 7 89...
幾種排序演算法的比較
1.分類 非線性時間比較類排序 通過比較來決定元素間的相對位置關係,由於其時間複雜度不能突破o nlogn 因此稱為非線性時間比較類排序。線性時間比較類排序 不通過比較來決定元素間的相對位置關係,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間比較類排序。2.複雜度 3.演算法相關...
幾種排序演算法簡單比較
1 選擇排序 選擇排序是一種不斷在剩餘元素找最小元素的方法,該排序與陣列大小無關,資料移動較少。首先找到陣列最小元素,將它和陣列第乙個位置元素交換。再在剩下元素找最小元素,和陣列第二個位置的元素交換,依次進行。2 插入排序 插入排序適合接近有序元素的排序。首先將陣列前兩個元素按公升序排列,然後將第三...