16周 專案(一) 歸併排序,基數排序

2021-07-08 21:44:35 字數 1465 閱讀 9913

問題及**:

歸併排序:

#include #include #define maxsize 20

typedef int keytype; //定義關鍵字型別

typedef char infotype[10];

typedef struct //記錄型別

rectype; //排序的記錄型別定義

void merge(rectype r,int low,int mid,int high)

else //將第2段中的記錄放入r1中

while (i<=mid) //將第1段餘下部分複製到r1

while (j<=high) //將第2段餘下部分複製到r1

for (k=0,i=low; i<=high; k++,i++) //將r1複製回r中

r[i]=r1[k];

}void mergepass(rectype r,int length,int n) //對整個數序進行一趟歸併

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

輸出及結果:

分析:

第16周專案1 (6)基數排序

問題及 檔名稱 1.cpp 作 者 王修文 完成日期 2016年12月15日 版 本 號 v1.0 問題描述 驗證基數排序,完成測試。輸入描述 無 程式輸出 測試資料 include include include define maxe 20 線性表中最多元素個數 define maxr 10 基...

第16周 專案1 基數排序

檔名稱 1.pp 完成日期 2015年12月14日 問題描述 驗證演算法 include include include define maxe 20 線性表中最多元素個數 define maxr 10 基數的最大取值 define maxd 8 關鍵字位數的最大取值 typedef struct ...

第16周專案1 (8)基數排序

問題描述及 煙台大學計算機與控制工程學院 作 者 馬賽 完成日期 2016年12月15日 問題描述 用序列作測試資料,驗證歸基數排序 endif btree h included include include include define maxe 20 線性表中最多元素個數 define max...