其中,n表示資料規模,rd表示關鍵字取值個數,d表示關鍵字個數
穩定的排序方法:所有的簡單排序,歸併排序,基數排序
不穩定的排序方法:希爾排序,快速排序,堆排序
一般而言,排序過程中「比較」過程是在兩個相鄰關鍵字之間進行的排序方法是穩定的。
就地排序方法:所有簡單排序,希爾排序,堆排序。
所需輔助空間最多是:歸併排序
在所有平均時間複雜度為o(nlogn)的演算法中 快速排序 平均效能是最好的,因為其常數因子最小。
插入排序:適用於n比較小,或者基本有序的情況,經常與其它方法結合
快速排序:不適用於原始序列有序或者基本有序的情況,此時退化為氣泡排序
堆排序:不適用於n比較小的情況,對n比較大的情況下還是比較有效的
歸併排序:適用於n值很大,適用於分布式計算
基數排序:適用於n值很大,關鍵字較少的情況
總的來說—-沒有最佳的排序方法,只有最合適的排序方法,很多情況都需要各種方法相結合。
大話資料結構 幾種排序演算法
這篇筆記主要是寫寫這些常見的排序演算法。思想 兩兩比較相鄰記錄的關鍵字,反序則交換,直到沒有反序為止。include 交換int型陣列l中下標i和j的值 void swap int l,int i,int j void bubblesort int l 分析 最好的情況比較n 1次,時間複雜度o n...
幾種常用的資料結構演算法
1.氣泡排序 時間複雜度為o n n nsarray array int i j for i 0,i array.count 1,i 2.二分查詢 折半查詢 時間複雜度為o log n int search int array,int low,int high,int target 3.單鏈表反轉 ...
資料結構排序演算法總結
常用的演算法有插入排序 氣泡排序 選擇排序 快速排序 歸併排序 希爾排序 堆排序 計數排序和基數排序。下面對著九種常見排序方法進行總結 排序方法 時間複雜度 空間複雜度 個人評價 插入排序 o n 2 o 1 選擇排序 氣泡排序 希爾排序 o n log n 快速排序 o log n 歸併排序 o ...