查詢與排序?qū)嶒瀳蟾鎋第1頁
查詢與排序?qū)嶒瀳蟾鎋第2頁
查詢與排序?qū)嶒瀳蟾鎋第3頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、學(xué)院專業(yè) 班 學(xué)號協(xié)作者師評定實驗題目查詢與排序綜合實驗評分表指導(dǎo)教師評分標(biāo)準(zhǔn)序 號評分項目評分標(biāo)準(zhǔn)滿分打分1完成度按要求獨立完成實驗準(zhǔn)備、程序調(diào)試、實驗報告撰寫。202實驗容(1)完成功能需求分析、存儲結(jié)構(gòu)設(shè)計;(2)程序功能完善、可正常運行;(3)測試數(shù)據(jù)正確,分析正確,結(jié)論正確。303實驗報告容齊全,符合要求,文理通順,排版美觀。404總結(jié)對實驗過程遇到的問題能初步獨立分析,解決后能總結(jié)問題 原因及解決方法,有心得體會。10實驗報告實驗?zāi)康呐c要求1、掌握散列表的構(gòu)造及實現(xiàn)散列查找;2、掌握堆排序的算法;3、綜合比較各類排序算法的性能。實驗容#includestdio.h#includes

2、tdlib.h#includestring.h#includewindows.h#defineMAX 20typedef structunsigned long key;int result;char name30; RNode;RNode tMAX,rMAX;int h( unsigned long k) /* 散列函數(shù) */return (k - 3109005700) %11);void insert(RNode t,RNode x) /* 插入函數(shù),以線性探查方法解決沖突 */ int i,j = 0;i= h(x .key);while (j 0) j+ ;if (j= MAX) p

3、rintf( fulln );i= (i+ j)%MAX;if (ti .key = 0)ti =x;elseif (ti .key = x.key)printf( 記錄已存在 !n );int search(RNode t, unsigned long k) /* 插入函數(shù),以線性探查方法解決沖突 */ int i,j = 0;i= h(k);while (j MAX) & (t(i+j)%MAX .key != k)& (t(i+j)%MAX .key !=0)j+ ;i= (i+ j)%MAX;return (i);if (j= MAX)return MAX;elsereturn (-i

4、);void sift(RNode r, int v,int w)int i,j;RNode a;i=v;a= ri;j=2*i+1;while (j= w)if (j rj+1 .result) j+ ;if (a.result rj .result)ri = rj;i =j;j=2*j+1;else break ;void sort(RNode r, int n)int i;RNode y;for (i=n/2-1;i= 0;i - )sift(r,i,n -1);for (i = n - 1;i 0;i - )y = r0;r0 = ri;ri =y;printf( 學(xué)生: %st 學(xué)生

5、學(xué)號: %ut 學(xué)生成 績: %dn ,ri .name,ri .key,ri .result);sift(r,0,i -1);printf(學(xué)生:st學(xué)生學(xué)號:ut學(xué)生成 績: %dn ,r0 .name,r0 .key,r0 .result);int menu() /* 菜單函數(shù) */int select;printf( nn );printf( n );nx查找排序?qū)嶒?n);printf( tt*歡迎進入系統(tǒng)*n );printf( tt*menu:*n );printf( tt*1.查找*n );printf( tt*2.排序*n );printf( tt*0.退出*n );prin

6、tf( tt*n );printf(IItt*n);printf( n );printf( ttt 請輸入0-2n );printf( n );printf( 請選擇您所要的操作 (選擇(0)退出 ):);scanf( %d ,& select);getchar();return (select);void main()/* 主函數(shù) */int i,s,n,select;int j= 0,m = 0;RNode y;for (i= 0;i MAX;i +)for (i= 0;i 10;i + ) /* 導(dǎo)入記錄*/switch (i)case 0:RNode x;x.key = 310900

7、*; strcpy(x .name, * );x.result =90;insert(t,x);break ;case 1:RNode x;x.key = 31090 * 1; strcpy(x .name, * );x.result =95;insert(t,x);break ;case 2:RNode x;x.key = 3109005 * ; strcpy(x .name, * );x.result =92;insert(t,x);break ;case 3:RNode x;x.key = 31090 * ;strcpy(x .name, * );x.result =93;insert(

8、t,x);break ;case 4:RNode x;x.key = 3109005 * ; strcpy(x .name, * );x.result =94;insert(t,x);break ;case 5:RNode x;x.key = 310900 * ; strcpy(x .name, * );x.result =91;insert(t,x);break ;RNode x;x.key = 3109005 * ; strcpy(x .name, * );x.result =96;insert(t,x);break ;case 7:RNode x;x.key = 310900 *; st

9、rcpy(x .name, * );x.result =99;insert(t,x);break ;case 8:RNode x;x.key = 310900 *; strcpy(x .name, * );x.result =98;insert(t,x);break ;case 9:RNode x;x.key = 310900 *;strcpy(x .name, * );x.result =97;insert(t,x);break ;printf( nnnnnnn );system( cls );loop: printf( nnn );select = menu();switch (selec

10、t) case 1:printf( n 請輸入要查找的學(xué)生學(xué)號: );scanf( %u ,& y.key);s= search(t,y .key);if (s= MAX |s 0) printf( not findn );else printf( nn 你要查找的學(xué)生信息 n );printf(學(xué)生:st 學(xué)生學(xué)號:u,,ts .key);break ; for (i=0;iMAX;i + ) if (ti .key != 0)rj+ = ti;m+ ;printf( 排序之前: nn );for (i = 0;i m;i + )%ut 學(xué)生成printf( 學(xué)生: %st 學(xué)

11、生學(xué)號:績: %dn ,ri .name,ri .key,ri .result);printf( n 排序之后: n );sort(r,m);break ;case 0:exit(0);getchar();goto loop;三、實驗結(jié)果和數(shù)據(jù)處理(1)查找數(shù)據(jù)(310900* )(2)排序四、總結(jié)這次的課程實驗完成了主控界面,錄入,輸出,排序,查找,結(jié)束界面等功能。在 程序調(diào)試過程之中,我還是個初學(xué)者,在編寫程序的過程中不斷出現(xiàn)不同狀況的錯誤, 在修改中不斷發(fā)現(xiàn)自己的問題和不足。通過編譯調(diào)試,程序提示錯誤所在,然后我們根 據(jù)提示再進行修改。從這個過程之中,使我多多思考問題,不斷摸索,盡量自己發(fā)現(xiàn)錯 誤所在并加以改正,以便在下次不再犯同類型的錯誤。也就是說在調(diào)試的過程中,不斷 的學(xué)習(xí),不斷的改進,提高自身 C語言學(xué)習(xí)能力和算法設(shè)計能力。五、問題與討論1、 分析你所構(gòu)造散列表的查找成功的平均查找長度?01234567891033343536

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論