基數排序 經典

2021-06-02 23:42:00 字數 895 閱讀 5452

基數排序

(英語:radix sort

)是一種非比較型

整數排序演算法

,其原理是將整數按位數切割成不同的數字,然後按每個位數分別比較。由於整數也可以表達字串(比如名字或日期)和特定格式的浮點數,所以基數排序也不是只能使用於整數。

它是這樣實現的:將所有待比較數值(正整數)統一為同樣的數字長度,數字較短的數前面補零。然後,從最低位開始,依次進行一次排序。這樣從最低位排序一直到最高位排序完成以後, 數列就變成乙個有序序列。

參考 《資料結構》(c語言版)--嚴蔚敏編著  教材 p288,用c語言實現經典的基數排序演算法。用例也參考教材p287.

#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;

}

in.txt 輸入檔案: 10

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 基數排序法是屬於穩定性的排序,基數...