資料結構 C語言實現排序演算法 基數排序

2021-10-10 02:15:27 字數 822 閱讀 4384

基數排序:借助多關鍵字排序的思想對單邏輯關鍵字進行排序的方法。

演算法實現的思想如圖:

演算法的實現:

先統計數字的位數,記為n

每次陣列值除10^n得到的結果,就將該數值放在該結果上

對所有資料做同樣的操作,然後n-1

讀資料放進陣列中,從小往大讀,該位置若有多個資料,讀取的時候按照先進先出的原則

重複上述步驟,直到n = 0為止。

**實現:

int

gexradixpos

(int value,

int i)

//尋找插入位置

return key;

}void

collect

(int

*arr)

//**}}

void

distribute

(int

*arr,

int left,

int right,

int n)

//分發

}void

radixsort

(int

*arr,

int left,

int right)

for(

int i =

0; i < radix;

++i)

//摧毀

slistdestroy

(&list[i]);

}

資料結構 C語言實現排序演算法 希爾排序

希爾排序 又稱 縮小增量排序 基本思想 先將待排序列分為若干個子串行分別進行直接插入排序,待整個序列 基本有序時 再對整個序列進行一次直接插入排序。圖例 由圖例可以看出 希爾排序是通過不斷的縮小增量來實現排序的方法。c 實現 void shellsort int arr,int left,int r...

資料結構 C語言實現排序演算法 堆排序

堆排序 利用堆這種資料結構所設計的一種排序演算法。大堆 根節點值大於子節點的值,對應為公升序序列。小堆 根節點值小於子節點的值,對應為降序序列。堆排序實現的兩個步驟 建立堆堆排序 下述例子是進行大堆建立 建立大堆 圖例 建立步驟 尋找最後乙個分支的根節點 記為pos pos挨個減小,對每個分支,都進...

資料結構 C語言實現排序演算法 氣泡排序

氣泡排序 基本思想就是資料的每一趟比較就會將最大 最小 的資料放到末尾,從而達到公升序 降序 的序列。又稱石沉大海法。演算法實現步驟 從起始位置比較和下乙個位置的大小 做交換,將大數 小數 置後 依次比較置換後的數和下乙個數進行比較,置換 第一趟會將最大 最小 的數沉底,做n趟迴圈後,資料就會排好 ...