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

下載本文檔

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

文檔簡介

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

2、nclude"#i nclude,z/,#i nclude,/zdefine MAX 20typedef structunsigned long key;int resuIt;char name30;RNode;RNode tMAX, rMAX;int h(unsigned long k) /* 散列函數(shù) */return (k-00)%ll);void insert (RNode t , RNode x) /*插入函數(shù),以線性探查方法解決沖突*/( int i, j二0;i二h; while(j<MAX)&&(t(i+j)%MAX. key!=&&am

3、p;(t(i+j)%MAX. key>0) j+; 辻(j二二MAX) printf("fullXn" ); i二(i+j)%MAX;if (tikey=0)ti二x;elseif (ti key二二printf (記錄已存在! rT);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;辻

4、(ti key=k)return (i);辻(j二二MAX)return MAX;elsereturn (i);)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<w)&&(rj. result>rj+1 resuIt) j+;if >rj resuIt)ri =rj;i 二j;j二2*j+l;else break;)ri二a;void sort(RNode r, int n)int i;RNode y;for (i二n/ 2T;

5、i=0;i -)sift (r, i, n T);for (i=nl;i>0;i-)y=r0 ;r0二譏i;ri二y;prin tf(z/學(xué)生姓名:st學(xué)生學(xué)號:ut學(xué)生成 績:dn,ri name, ri. key, ri. resuIt);sift (r, 0, il);printf C學(xué)生姓名:%st 學(xué)生學(xué)號:%ut 學(xué)生成績:%dn, r 0. name, r0. key, r 0. result); int menu () /* 菜單函數(shù) */ 1int select;printf( "nn );printf( n );pr i nt f ( " *杳:掃

6、乍實 g令*nhiIfttf( tt*nppintf nt *孕*nprintfmenu:*printf( tt*1 查找);printf( "tt*2 排序*nprintf( "tt*0.退出*nprintf ( tt*nprintf( n ) ; printf(t 請輸入 0-)2n );printf ( "n);printf( 請選擇您所要的操作(選擇(0)退ftselect);get char () ; ret urn (selec t);void main() /* 主函數(shù) */(int i, s, n, select;int j二0, m二0;RNod

7、e y;for (i二0;iMAX;i+) ti key=0; /* 初始化 */for (i二0;i10;i+) /* 導(dǎo)入記錄*/(switch(i) caseO:RNode x;二310900* ; strcpy, " *“ ); =90;insert(t, x); break; easel:RNode x;二31090* 1:strcpy, *);二95;insert (t, x);break; case2:RNode x;二3109005* ; strcpy," *“ );二92;insert (t, x);break; case3:RNode x;二31090*

8、 ;strcpy, /z *“);二93; insert (t, x) ; break; case4: RNode x;二3109005* ; strcpy,,z *“);二94;insert (t, x);break; case5:RNode x; =310900* ; strcpy,,z *“);二91;insert (t, x);break; case6:RNode x;二3109005* ; strcpy," *“ );二96;insert (t, x);break; case7:RNode x;二310900* ; strcpy, *“ );二99;insert(t, x)

9、; break;case8: RNode x; =310900* ; strcpy, z,*“);二98; insert (t, x) ; break; case9: RNode x;二310900* ; strcpy,*);二97; insert (t,x); break; Hprintf( nnnnnnn);system(cls ); loop: printf( nnn );select二menu(); switch(select) easel: printf ( n請輸入要查找的學(xué)生學(xué)號:“);scanf &s二search (t,;if (s二二MAX| s<0) pri

10、ntf( "not find'rT ); else printf ( nn你要查找的學(xué)生信息n);printf (,z學(xué)生姓名:%st 學(xué)生學(xué)號:%u,z, t s. name, t s. key) ; break; case2: for(i=0:i<MAX;i+) if(ti. key!=0)<rj+二ti; m+;)printf (排序之前:nn);for ( i二0 : i<m ; i +) prin tf (學(xué)生姓名:st 學(xué)生學(xué)號:ut 學(xué)生成 績:%dn,z, ri name, r i key, r i resuIt);printf (,zn 排

11、序之后:n);sort (r, m);break;caseO: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ù)提示再進(jìn)行 修改。從這個過程之中,使我多多思考問題,不斷摸索,盡量自己發(fā)現(xiàn)錯 誤所在并加以改 正,以便在下次不再犯同類型的錯誤。也就是說在調(diào)試的過程中,不斷的學(xué)習(xí),不斷的改 進(jìn),提高自身c語言學(xué)習(xí)能力和算法設(shè)計能力。五、問題與討論1、分析你所構(gòu)造散列表的查找成功的平均查找長度0123456789103334353637383940

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論