基數排序
(英語:radix sort
)是一種非比較型
整數排序演算法
,其原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。由於整數也可以表達字串(比如名字或日期)和特定格式的浮點數,所以基數排序也不是只能使用於整數。
它是這樣實現的:將所有待比較數值(正整數)統一為同樣的數字長度,數字較短的數前面補零。然後,從最低位開始,依次進行一次排序。這樣從最低位排序一直到最高位排序完成以後, 數列就變成乙個有序序列。
參考 《資料結構》(c語言版)--嚴蔚敏編著 教材 p288,用c語言實現經典的基數排序演算法。用例也參考教材p287.
in.txt 輸入檔案: 10#include #define radix 10 //關鍵字基數,一般為10進製
#define max_space 100 //陣列最大容量
/*--- 靜態鍊錶 ---*/
struct slcellr[max_space];
typedef int arrtype[radix];
void distribute(int base,arrtype &f,arrtype &e) //分配過程
//printf("keynum: %d\n",keynum);
radixsort(keynum);
printf("after radixsort:\n"); //輸出排序後陣列
for(i=r[0].next;i;i=r[i].next)
printf("%d ",r[i].keys);
printf("\n");
return 0;
}
278 109 63 930 589 184 505 269 8 83
執行結果:
經典演算法 基數排序
概述 基數排序是一種高效的線性排序演算法。其方法是將資料按位分開,並從資料的最低有效位到最高有效位進行比較,依次排序,從而得到有序資料集合。例子 用基數排序對十進位制資料進行排序。在對個位數排序之後 在對十位數排序之後 有一點非常重要,在對每一位數值進行排序時其排序過程必須是穩定的。程式 inclu...
排序 基數排序
基數排序 radix sort 是屬於 分配式排序 distribution sort 基數排序法又稱 桶子法 bucket sort 或bin sort,顧名思義,它是透過鍵值的部份資訊,將要排序的元素分配至某些 桶 中,藉以達到排序的作用。排序思想 首先按照資料的最低位 個位 將資料分配到0 9...
排序 基數排序
1 基數排序 桶排序 介紹 1 基數排序 radix sort 屬於 分配式排序 distribution sort 又稱 桶子法 bucket sort 或bin sort,顧名思義,它是通過鍵值的各個位的值,將要排序的元素分配至某些 桶 中,達到排序的作用 2 基數排序法是屬於穩定性的排序,基數...