第十五周專案一 驗證演算法之歸併排序 基數排序

2021-08-13 03:16:34 字數 1706 閱讀 6913

【專案一 - 驗證演算法(3)】

/*              

*煙台大學計算機與控制工程學院

*作 者:張雨萌

*完成日期:2023年12月7日

*/

執行結果並深刻領會演算法的思路和實現方法:

(7)歸併排序;(8)基數排序

程式及**:

(7)歸併排序

#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

執行結果:

知識點總結:

學習了歸併排序和基數排序

心得體會:

我就驚呆了,不得不佩服寫出這種方法來的人。

第十五周 專案一 驗證演算法 歸併排序

檔名稱 axiao15.cpp 作 者 李瀟 完成日期 2017 年 12 月 26 日 版 本 號 v1.0 輸入描述 無需輸入 程式輸出 實現各種演算法的函式的測試結果 include include define maxsize 20 typedef int keytype 定義關鍵字型別 t...

第十五周 專案一 驗證演算法(7)歸併排序

all right reserved.檔名稱 search 完成日期 2017年12月14日 版本號 v1.0 問題描述 歸併排序 輸入描述 標準函式輸入 程式輸出 標準函式輸出 include include define maxsize 20 typedef int keytype 定義關鍵字型...

第十五周 專案一 驗證演算法

問題及 2015,煙台大學計算機與控制工程學院 完成日期 2015年12月6日 問題描述 認真閱讀並驗證雜湊表實施查詢的相關演算法,寫程式建立序列的雜湊表,裝填因子定為0.8,雜湊函式為h k key p,p 11,採用線性探查法解決衝突。測試中 1 輸出建立的雜湊表 2 完成關鍵字為29的元素的查...