專案完整**
執行效果圖
//定義鏈結構
typedef
struct linknode linknode;
//定義鏈佇列
typedef
struct
linkqueue;
//初始化帶頭結點的鏈式佇列
void
initqueue
(linkqueue &q)
//初始化帶頭結點的鏈式佇列
void
initqueue
(linkqueue &q)
}
//帶頭結點的鏈式隊列入隊操作
void
enqueue
(linkqueue &q,
int x)
//帶頭結點的鏈式佇列出隊操作
bool dequeue
(linkqueue &q,
int&x)
//取各個位的值
intgetnum
(int a,
int i)
return n;
}
//檢索表中最大值的位數
inthowmany
(int a,
int len)
if(index < temp)
index = temp;
}return index;
}
//基數排序
void
basesort
(int a[
], linkqueue q,
int index,
int len)
for(
int j =
9, p =
0; j >=
0&& p < len;
--j)}}
}
//基數排序(穩定的)
#include
#include
#include
//定義鏈結構
typedef
struct linknode linknode;
//定義鏈佇列
typedef
struct
linkqueue;
//初始化帶頭結點的鏈式佇列
void
initqueue
(linkqueue &q)
//判斷帶頭結點的鏈式佇列是否為空
bool isempty
(linkqueue q)
//帶頭結點的鏈式隊列入隊操作
void
enqueue
(linkqueue &q,
int x)
//帶頭結點的鏈式佇列出隊操作
bool dequeue
(linkqueue &q,
int&x)
//取各個位的值
intgetnum
(int a,
int i)
return n;
}//檢索表中最大值的位數
inthowmany
(int a,
int len)
if(index < temp)
index = temp;
}return index;
}//基數排序
void
basesort
(int a[
], linkqueue q,
int index,
int len)
for(
int j =
9, p =
0; j >=
0&& p < len;
--j)}}
}int
main()
int a=
;int len =
sizeof
(a)/
sizeof
(int);
//檢索表中最大值的位數
int index =
howmany
(a, len)
;//基數排序
basesort
(a, q, index, len)
;//將排序後的結果輸出
printf
("基數排序的結果為:");
基於佇列的基數排序(使用C 實現)
include include includeusing namespace std int main queueque 10 int m 0,max numbers 0 求出陣列中的最大元素 for int i 1 i 11 i 求出陣列中元素最多有多少位 即最大值max有多少位 儲存在m當中 w...
基數排序 佇列實現
基數排序是一種不需要比較就能實現排序的演算法思維,主要步驟為分配和收集的過程,重複這個過程於最大數的位數後,排序結束。以下是完全以佇列模擬桶的分配收集過程。標頭檔案 單鏈表部分 typedef int elemtype typedef struct lnode lnode,linklist int ...
排序 8 之基數排序的C語言實現
基數排序 radix sorting 是一種借助多關鍵字排序的思想對單邏輯關鍵字進行關係的方法。基數排序不需要進行記錄關鍵字間的比較。主要分為兩個過程 1 分配,先從個位開始,根據位值 0 9 分別放到0 9號桶中 比如53,個位為3,則放入3號桶中 2 收集,再將放置在0 9號桶中的資料按順序放到...