資料結構 8大排序

2021-06-26 05:51:57 字數 1071 閱讀 4048

大學時代資料結構學的不好,奈何出來之後許多公司都有類似的面試題,「說說你知道的排序方法」,當時就傻眼了,話不多說,進入主題

8大排序有哪8種呢?

這裡有一組資料

78   20   30   40  55   66

選中78作為乙個序列

將後面的數20與其比較

小於78放在前面

(20   78)

然後將(20   78)作為序列與後面數比較

依次類推就ok了

(如果碰到插入相等元素,插入相等元素後面即可)

比如有10個數

1 2 3 4 5 6 7 8 9 10

取數值的一半5作為乙個集合的寬度

1 2 3 4 5 6

2 3 4 5 6 7

3 4 5 6 7 8

4 5 6 7 8 9

5 6 7 8 9 10

分別進行比較

然後取5的一半3作為集合寬度

最後取1作為寬度比較即可

有一組數 22 48 49 64 33 19

選中這組數中最小的與22交換

19 48 49 64 33 22

然後在剩下的數中選擇最小的與第二個數交換

依次類推即可

就是對完全二叉樹的排序

在一組數中,自上而下對相鄰的兩個數依次比較和調整,較大的下沉,較小的往上冒

49 55 33 22 19 88 66 77

選中乙個數55

把小於55放在一組,大於55放在一組

(49 33 22 19)    55    (88 66 77)

然後在前面選擇49 後面選擇88比較

(33 22 19)49 55 (66 77)88

依次類推即可

將兩個或以上有序表合併成新的有序表

(49 38 65 97) (76 13 27)

先分解(49)(38)(65)(97)(76)(13)(27)

在兩兩比較

(38 49)(65 97)(13 76)(27)

然後在比較.......

按照低位先排序,再收集;然後按照高位排序,再收集,直到最高位。

資料結構八大排序

不穩定排序 一 選擇排序 例如 4 1 8 21 0 i j 0 4 8 21 1 將i的值存放到minindex中 arr j tmp 比較minindex和tmp的值 最後互換 void select sort int arr,int len 三 直接插入排序 穩定的演算法 無序 o n 2 有...

資料結構八大排序演算法

常見的八大排序演算法,他們之間關係如下 直接插入排序 definsert sort l 遍歷陣列中的所有元素,其中0號索引元素預設已排序,因此從1開始 for x in range 1 len l 將該元素與已排序好的前序陣列依次比較,如果該元素小,則交換 range x 1,1,1 從x 1倒序迴...

資料結構 七大排序(一)

排序 所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。穩定性 假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次 序保持不變,即在原序列中,r i r j 且r i 在r j 之前,而在排序後的序列中,r i 仍在r j 之...