八大排序 基數排序

2021-07-23 17:37:34 字數 602 閱讀 2748

基數排序:

將整形10進製按每位拆分,然後從低位到高位依次比較各個位。每次比較完進行排序,直到整個陣列有序

主要分為兩個過程:

(1)分配,先從個位開始,根據位值(0-9)分別放到0~9號桶中(比如53,個位為3,則放入3號桶中)

(2)收集,再將放置在0~9號桶中的資料按順序放到陣列中

重複(1)(2)過程,從個位到最高位,直到排好序為止(比如32位無符號整形最大數4294967296,最高位10位)

實現**:

// 找到num的從低到高的第pos位的資料  

int getnuminpos(int num,int pos)

//基數排序 pdataarray 無序陣列;idatanum為無序資料個數

void radixsort(int* pdataarray, int idatanum)

for (int pos = 1; pos <= keynum_31; pos++) //從個位開始到31位

for (int i = 0, j =0; i < radix_10; i++) //收集

} }

八大排序之基數排序

個人部落格 建議先看排序綜述,傳送門 資料結構與演算法系列之一 八大排序綜述。基數排序 英語 radix sort 是一種非比較型整數排序演算法,其原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。由於整數也可以表達字串 比如名字或日期 和特定格式的浮點數,所以基數排序也不是只能使用於整數...

八大排序(五) 基數排序

基數排序與之前的其他七種排序方法都不同,它不需要比較關鍵字的大小。以下用乙個例子來講解基數排序 假設有乙個陣列 73,22,93,43,55,14,28,65,39,81 1.首先根據個位數的數值,在走訪數值時將它們分配至編號0到9的桶子中,分配結果如下圖 2.將這些桶子中的數值按順序重新串接起來,...

八大排序指基數排序

一 基數排序的思想 基數排序也稱 桶排序 它的基本思想就是 假設一組待排序資料,先對於資料基於個位排序,然後是基於百位排序,基於千位排序,最後使整個序列有序。二 基數排序 給定一組待排序序列 51 26 7 33 27 534 7648 649 67 49 1 第一趟排序 按每個陣列的個位數字歸到相...