問題及**:
/*
*煙台大學計算機與控制工程學院
*作 者:孫麗瑋
*完成日期:2023年12月10日
(1)直接插入排序;(2)希爾排序;(3)氣泡排序;(4)快速排序;(5)直接選擇排序;(6)堆排序;(7)歸併排序;(8)基數排序。
*/
#include #include #include #define maxe 20 //線性表中最多元素個數
#define maxr 10 //基數的最大取值
#define maxd 8 //關鍵字位數的最大取值
typedef struct node
rectype;
void crealink(rectype *&p,char *a,int n);
void displink(rectype *p);
void radixsort(rectype *&p,int r,int d) //實現基數排序:*p為待排序序列鍊錶指標,r為基數,d為關鍵字位數
else
p=p->next; //取下乙個待排序的元素
}p=null; //重新用p來收集所有結點
for (j=0; jnext=head[j];
t=tail[j];}}
t->next=null; //最後乙個結點的next域置null
//以下的顯示並非必要
printf(" 按%d位排序\t",i);
displink(p);
}}void createlink(rectype *&p,char a[maxe][maxd],int n) //採用後插法產生鍊錶
else
}t->next=null;
}void displink(rectype *p) //輸出鍊錶
printf("\n");
}int main()
; for (i=0; i
執行結果:
總結:基數排序:將所有待比較數值統一為同樣的數字長度,數字較短的數前面補零。然後,從最低位開始,依次進行一次排序。這樣從最低位排序一直到最高位排序完成以後, 數列就變成乙個有序序列。
第十六周 驗證演算法(基數排序)
all right reserved.date 2015年12月14日 版本 v1.0.1 作業系統 xp 執行環境 vc6.0 問題描述 用序列作為測試資料,include include include define maxe 20 線性表中最多元素個數 define maxr 10 基數的最大...
第十六周 專案5演算法驗證基數排序
all right reserved.檔名稱 houzhui.cpp 作 者 商文軻 完成日期 2015年12月18日 版 本 號 v1.9 include include include define maxe 20 線性表中最多元素個數 define maxr 10 基數的最大取值 define...
第十六周 專案1 驗證演算法 基數排序
檔名稱 1.cpp 作 者 楊俊傑 完成日期 2016年 12月15日 版 本 號 v1.0 問題描述 輸出描述 cpp view plain copy include include include define maxe 20 線性表中最多元素個數 define maxr 10 基數的最大取值 ...