排序演算法總結

2022-05-10 02:56:35 字數 1922 閱讀 3102

9,3,5,1,6,2,8,4,7

3,5,1,6,2,8,4,7,9

3,1,5,2,6,4,7,8,9

1,3,2,5,4,6,7,8,9

1,2,3,4,5,6,7,8,9

1,2,3,4,5,6,7,8,9

1,2,3,4,5,6,7,8,9

1,2,3,4,5,6,7,8,9

快速排序:

設要排序的陣列是a[0]……a[n-1],首先任意選取乙個資料(通常選用第乙個資料)作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。一趟快速排序的演算法是:

1)設定兩個變數i、j,排序開始的時候:i=1,j=n-1;

2)以第乙個陣列元素作為關鍵資料,賦值給x,即 x=a[0];

3)從j開始向前搜尋,即由後開始向前搜尋(j=j-1),找到第乙個小於x的值,讓該值與x交換;

4)從i開始向後搜尋,即由前開始向後搜尋(i=i+1),找到第乙個大於x的值,讓該值與x交換;

5)重複第3、4步,直到 i=j;

935162847

735162849

43516287 9

23516487 9

23416587 9

23146587 9

123 4 5687 9

123 4 5 6 78 9

123456789

歸併排序:

歸併排序(merge sort)是又一類不同的排序方法,合併的含義就是將兩個或兩個以上的有序資料序列合併成乙個新的有序資料序列,因此它又叫歸併演算法。它的基本思想就是假設陣列a有n個元素,那麼可以看成陣列a是又n個有序的子串行組成,每個子串行的長度為1,然後再兩兩合併,得到了乙個 n/2 個長度為2或1的有序子串行,再兩兩合併,如此重複,直到得到乙個長度為n的有序資料序列為止,這種排序方法稱為2—路合併排序。

9,3,5,1,6,2,8,4,7

3,9, 1,5, 2,6, 4,8, 7

1,3,5,9, 2,4,6,8, 7 兩次合併後

1,2,3,4,5,6,8,9, 7 第三次合併後

1,2,3,4,5,6,7,8,9 第四次合併後

選擇排序:

每一趟從待排序的資料元素中選出最小(或最大)的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。

選擇排序是不穩定的排序方法。

n個記錄的檔案的直接選擇排序可經過n-1趟直接選擇排序得到有序結果:

①初始狀態:無序區為r[1..n],有序區為空。

②第1趟排序

在無序區r[1..n]中選出關鍵字最小的記錄r[k],將它與無序區的第1個記錄r[1]交換,使r[1..1]和r[2..

n]分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區。

……③第i趟排序

第i趟排序開始時,當前有序區和無序區分別為r[1..i-1]和r(1≤i≤n-1)。該趟排序從當前無序區中選出關鍵字最小的記錄 r[k],將它與無序區的第1個記錄r交換,使r[1..

i]和r分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區。

這樣,n個記錄的檔案的直接選擇排序可經過n-1趟直接選擇排序得到有序結果。

9,3,5,1,6,2,8,4,7 第一次掃瞄,1最小,將1與第乙個數交換

1,3,5,9,6,2,8,4,7 第二次掃瞄,2最小,將2與第二個數交換

1,2,5,9,6,3,8,4,7

1,2,3,9,6,5,8,4,7

1,2,3,4,6,5,8,9,7

1,2,3,4,5,6,8,9,7

1,2,3,4,5,6,7,9,8

1,2,3,4,5,6,7,8,9 第八次掃瞄,8最小,將8與第八個數交換

1,2,3,4,5,6,7,8,9

基數排序:

需而外構造十個陣列或鍊錶。對該例子進行一次分配就可排好。

排序演算法總結

常見的排序方式有6種 簡單排序裡面的有 插入排序 選擇排序 氣泡排序,時間複雜度為o n 2 線性對數階的排序 歸併排序 merge sort 快速排序,堆排序,時間複雜度為o nlogn 在n 50的情況下,最好使用插入排序或者選擇排序,由於選擇排序移動次數比插入排序少,在資料量比較多的情況,推薦...

排序演算法總結

按平均時間將排序分為四類 1 平方階 o n2 排序 一般稱為簡單排序,例如直接插入 直接選擇和氣泡排序 2 線性對數階 o nlgn 排序 如快速 堆和歸併排序 3 o n1 階排序 是介於0和1之間的常數,即0 1,如希爾排序 4 線性階 o n 排序 如桶 箱和基數排序。各種排序方法比較 簡單...

排序演算法總結

熱2已有 2573 次閱讀 2009 09 01 13 23 填問卷贏好書華章讀者調研活動結果公布 一 選擇排序 1.基本思想 每一趟從待排序的資料元素中選出最小 或最大 的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。2.排序過程 示例 初始關鍵字 49 38 65 97 ...