#include#include#includeusing namespace std;
int main()
; queueque[10];
int m=0,max=numbers[0];
//求出陣列中的最大元素
for(int i=1;i<11;i++)
//求出陣列中元素最多有多少位(即最大值max有多少位),儲存在m當中
while(max)
int i,j,k,t;
//位數上限m決定了數字在佇列(桶)中的放置要進行幾輪
for(i=0;i//一輪放置結束後,把所有佇列(桶)中的數放回原陣列,然後進行下一輪的放置
for(j=0,t=0;j<10;j++)}}
//輸出基數排序的結果
for(int i=0;i<11;i++)
cout<}
基數排序 佇列實現
基數排序是一種不需要比較就能實現排序的演算法思維,主要步驟為分配和收集的過程,重複這個過程於最大數的位數後,排序結束。以下是完全以佇列模擬桶的分配收集過程。標頭檔案 單鏈表部分 typedef int elemtype typedef struct lnode lnode,linklist int ...
C語言實現基數排序 基於鏈佇列實現
專案完整 執行效果圖 定義鏈結構 typedef struct linknode linknode 定義鏈佇列 typedef struct linkqueue 初始化帶頭結點的鏈式佇列 void initqueue linkqueue q 初始化帶頭結點的鏈式佇列 void initqueue l...
c 實現基數排序
以下介紹內容 百科 基數排序的方式可以採用lsd least significant digital 或msd most significant digital lsd的排序方式由鍵值的最右邊開始,而msd則相反,由鍵值的最左邊開始。以lsd為例,假設原來有一串數值如下所示 73,22,93,43,...