常用排序彙總

2021-07-05 05:09:34 字數 1391 閱讀 8350

1.穩定性比較

插入排序、氣泡排序、二叉樹排序、二路歸併排序及其他線形排序是穩定的

選擇排序、希爾排序、快速排序、堆排序是不穩定的

2.時間複雜性比較

排序方法

平均情況

最好情況

最壞情況

歸併排序

o(nlogn)

o(nlogn)

o(nlogn)

基數排序

o(n)

o(n)

o(n)

快速排序

o(nlogn)

o(nlogn)

o(n^2)

希爾排序

o(n^1.5)

o(n)

o(n^1.5)

插入排序

o(n^2)

o(n)

o(n^2)

選擇排序

o(n^2)

o(n^2)

o(n^2)

3.輔助空間的比較

線形排序、二路歸併排序的輔助空間為o(n),其它排序的輔助空間為o(1);

4.其它比較

插入、氣泡排序的速度較慢,但參加排序的序列區域性或整體有序時,這種排序能達到較快的速度。

反而在這種情況下,快速排序反而慢了。

當n較小時,對穩定性不作要求時宜用選擇排序,對穩定性有要求時宜用插入或氣泡排序。

若待排序的記錄的關鍵字在乙個明顯有限範圍內時,且空間允許是用桶排序。

當n較大時,關鍵字元素比較隨機,對穩定性沒要求宜用快速排序。

當n較大時,關鍵字元素可能出現本身是有序的,對穩定性有要求時,空間允許的情況下。

宜用歸併排序。

當n較大時,關鍵字元素可能出現本身是有序的,對穩定性沒有要求時宜用堆排序。

重溫經典排序思想–c語言常用排序全解

1、穩定排序和非穩定排序

簡單地說就是所有相等的數經過某種排序方法後,仍能保持它們在排序之前的相對次序,我們就

說這種排序方法是穩定的。反之,就是非穩定的。

比如:一組數排序前是a1,a2,a3,a4,a5,其中a2=a4,經過某種排序後為a1,a2,a4,a3,a5,

則我們說這種排序是穩定的,因為a2排序前在a4的前面,排序後它還是在a4的前面。假如變成a1,a4,

a2,a3,a5就不是穩定的了。

2、內排序和外排序

在排序過程中,所有需要排序的數都在記憶體,並在記憶體中調整它們的儲存順序,稱為內排序;

在排序過程中,只有部分數被調入記憶體,並借助記憶體調整數在外存中的存放順序排序方法稱為外排序。

常用的排序演算法彙總

1 氣泡排序 基本思想 兩兩比較待排序的數,發現反序時交換,直到沒有反序為止。時間複雜度 o n2 空間複雜度 o 1 void buruebblesort int ary,int length 2 快速排序 基本思想 在待排序數列中任選出乙個數作為基準,用這個基準數將數列劃分為左右兩個子區,使得左...

排序方法彙總

氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。按...

排序法彙總

主關鍵字唯一區分不同資料,否則為次關鍵字。主關鍵字排序具有唯一性,次關鍵字否。若相同次關鍵字的元素排序可能發生交換順序,則稱演算法不穩定。常用排序演算法優劣衡量指標 時間效能好。即較少的關鍵字比較次數和元素移動次數。空間效能好。即輔助快取小。穩定性。即相同次關鍵字元素,排序前後相對位置恆定 原理 從...