三言兩語說清【基數排序】與【計數排序】

cpplover發表於2012-04-08

我們假設有這樣一組數字需要排序: 5,7,2,7,11,15,13

計數排序 1.開一個長度為16的陣列(當然其實10就夠了,為了說明和操作方便這裡放大一點) 2.在陣列的響應位置各個數字出現的次數

enter image description here

3.現在我們將這個陣列元素展開 如上如所示2的位置是1,所以寫下一個2,之後寫5,因為7的位置有2個,所以寫兩個7以此類推得到 2,5,7,7,11,13,15

基數排序 1.我們假設基於10進位制排序,我們建立一個長度為10的陣列 2.第一輪:基於個位數進行排序,排序完之後,我們將資料從陣列上取下來 3.第二輪:以上一輪排序的結果作為輸入, 基於十位數進行排序,排序完之後,我們將資料從陣列上取下來,得到排序完的結果。 enter image description here

相關文章