版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)六、七:查找、排序算法的應(yīng)用班級10511學(xué)號 20103051114姓名 高衛(wèi)娜、實(shí)驗(yàn)?zāi)康?掌握查找的不同方法,并能用高級語言實(shí)現(xiàn)查找算法。2熟練掌握順序表和有序表的順序查找和二分查找方法。3掌握排序的不同方法,并能用高級語言實(shí)現(xiàn)排序算法。4熟練掌握順序表的選擇排序、冒泡排序和直接插入排序算法的實(shí)現(xiàn)。、實(shí)驗(yàn)內(nèi)容1創(chuàng)建給定的順序表。表中共包含八條學(xué)生信息,信息如下:學(xué)號姓名班級C+數(shù)據(jù)結(jié)構(gòu)1王立0351185762張秋0351178883劉麗0351190794王通0351175865趙陽0351160716李艷0351158687錢娜0351195898孫勝0351145602使用順序查
2、找方法,從查找表中查找姓名為趙陽和王夏的學(xué)生。如果查找成功,則顯示該生的相關(guān)信息;如果查找不成功,則給出相應(yīng)的提示信息。3使用二分查找方法,從查找表中查找學(xué)號為7和12的學(xué)生。如果查找成功,則顯示該生的相關(guān)信息;如果查找不成功,則給出相應(yīng)的提示信息。(注意:創(chuàng)建靜態(tài)查找表時(shí)必須按學(xué)號的從小到大排列!)4使用直接插入排序方法,對學(xué)生信息中的姓名進(jìn)行排序。輸出排序前和排序后 的學(xué)生信息表,驗(yàn)證排序結(jié)果。5使用直接選擇排序方法,對學(xué)生信息中的C成績進(jìn)行排序。輸出排序前和排序后的學(xué)生信息表,驗(yàn)證排序結(jié)果。6使用冒泡排序方法,對學(xué)生信息中的數(shù)據(jù)結(jié)構(gòu)成績進(jìn)行排序。輸出排序前和排 序后的學(xué)生信息表,驗(yàn)證排序
3、結(jié)果。7編寫一個(gè)主函數(shù),將上面函數(shù)連在一起,構(gòu)成一個(gè)完整程序。8將實(shí)驗(yàn)源程序調(diào)試并運(yùn)行。三、實(shí)驗(yàn)結(jié)果 源程序代碼為:#in clude#in clude#i nclude #defi ne MAXSIZE 10typedef char KeyType1;typedef int KeyType2;typedef struct/學(xué)號姓名 班級 C+ 數(shù)據(jù)結(jié)構(gòu)KeyType1 name20;KeyType2 xuehao;KeyType1 Class20; double score2; DataType;typedef structDataType dataMAXSIZE+1;int len; Se
4、qList;/順序表的創(chuàng)建void create(SeqList &L)cout 請輸入順序表的大小 :L.len;數(shù)據(jù)cout 請輸入順序表中八條學(xué)生信息(學(xué)號 姓名 班級 C+ 結(jié)構(gòu)) :endl;for(int i=1;iL.datai.xuehao; cinL.; cinL.datai.Class; cinL.datai.score0; cinL.datai.score1;void Input(SeqList &L)for(int i=1;iL.datai.xuehao; cinL.; cinL.datai.Class; cinL.datai.s
5、core0; cinL.datai.score1;/順序表的顯示void print(SeqList L)cout 學(xué)號 姓名 班級 C+ 數(shù)據(jù)結(jié)構(gòu) endl; if(L.len=0)cout 該表是空表! endl;return;for(int i=1;i=L.len;i+)cout L.datai.xuehao L. L.datai.Class L.datai.score0 L.datai.score1;coutendl;/順序查找方法從查找表中查找姓名為趙陽和王夏的學(xué)生void S_Search(SeqList L)char na20;cout 請輸入要查找的同學(xué)的姓
6、名: na;strcpy(L.,na); / 監(jiān)視哨int i=L.len; while(strcmp(L.,na)0|strcmp(L.,na)0)cout 您要查找的學(xué)生的信息: endl; cout 學(xué)號 姓名 班級 C+ 數(shù)據(jù)結(jié)構(gòu) endl;cout L.datai.xuehao L. L.datai.Class L.datai.score0 L.datai.score1;coutendl;if(i=0)cout 對不起,沒有該同學(xué)的信息! endl;/二分查找方法從查找表中查找學(xué)號為7 和 12 的學(xué)生/
7、非遞歸void Binary_Search(SeqList &L)int kx;cout 請輸入您要查找的學(xué)生信息的學(xué)號:kx;cout 學(xué)號 姓名 班L.L.datamid.score0int low=1,high=L.len,mid; while(low=high) mid=(low+high)/2; if(L.datamid.xuehao=kx) cout 您要查找的學(xué)生的信息: endl; 級 C+ 數(shù)據(jù)結(jié)構(gòu) endl;cout L.datamid.xuehao L.datamid.Class L.datamid.score1;coutkx) high=mid-
8、1;else low=mid+1; if(lowhigh)cout 沒有該學(xué)號的學(xué)生信息! endl;/直接插入排序方法對順序表直接插入排序的算法對學(xué)生信息中的姓名進(jìn)行排序: void InsertSort( SeqList &L )int i, j;for( i=2; i=L.len; i+ )if(strcmp(L., L.)0)L.data0=L.datai; / 復(fù)制為哨兵for(j=i-1; strcmp(L., L.)0; j- )L.dataj+1=L.dataj; / 記錄后移L.dataj+1
9、=L.data0; / 插入到正確位置print(L);/直接選擇排序方法對學(xué)生信息中的C 成績進(jìn)行排序void SelectSort(SeqList &L)int i, j,k;DataType temp;for( i=1; iL.len; i+ )k = i;for( j=i+1; j=L.len; j+ )if( L.dataj.score0 L.datak.score0 )k = j ;if( k != i )temp = L.datai;L.datai = L.datak;L.datak =temp;print(L);/冒泡排序方法對學(xué)生信息中的數(shù)據(jù)結(jié)構(gòu)成績進(jìn)行排序void Bubb
10、leSort(SeqList &L)int i,j,flag=1;DataType x;for(i=1;(iL.len)&(flag=1);i+)flag=0;for(j=1;jL.dataj+1.score1) x=L.dataj;L.dataj=L.dataj+1;L.dataj+1=x;flag=1;print(L);void main()SeqList L;int a;coutendl;while(a!=0)coutendl;系統(tǒng)cout 歡 迎 使 用 學(xué) 生 信 息nendl;coutendl;cout 1 :錄入學(xué)生信息 2 : 按姓名查找學(xué)生信息 3: 按學(xué)號查找學(xué)生信息 en
11、dl;coutendl;cout 4 :按姓名排序后學(xué)生信息5 :按 c 成績排序?qū)W生信息 endl;coutendl;cout 6 :按數(shù)據(jù)結(jié)構(gòu)成績排序后學(xué)生信息 7 :顯示 0 :退出 endl;coutendl;coutendl;coutendl;couta;switch(a)case 1:case 2:case 3:case 4:case 5:case 6:endl;case 7: case 0: default: create(L); break; /順序查找方法從查找表中查找姓名為趙陽和王夏的學(xué)生 S_Search(L); break; Binary_Search(L); brea
12、k; cout 對學(xué)生信息中的姓名進(jìn)行排序?yàn)椋?endl; InsertSort(L);break;cout 對學(xué)生信息中的 C 成績進(jìn)行從低到高排序?yàn)椋?endl; SelectSort(L);break;cout 對學(xué)生信息中的數(shù)據(jù)結(jié)構(gòu)成績進(jìn)行從低到高排序?yàn)椋築ubbleSort(L); break;print(L); break; exit(0);cout 您輸入的序號不正確,請重新輸入: 05117RS03511907?035117503511“pi03511B8es0351195B?9351145636E艷0351158693賓IJM03511907?7t囪涼511?5站字小肚035
13、11轉(zhuǎn)斤1 -V03511S57&4103511758&2弓報(bào)03E1178695i那日035116071圖1-4按姓名排序鹽您鰹1ST?班級C+數(shù)據(jù)結(jié)構(gòu)63511胸68EEJ90797B35119589e孫KS3E114&G01干方S3511眄764-83S1175B62張0351178885趙陽63511G9?1於坐信恵沖益戍績進(jìn)行從低到高排序?yàn)椋簩W(xué)號班級C+數(shù)據(jù)結(jié)構(gòu)0J51145醐60351158685UJ5116U71斗03511758620351178881035118&7630351190797035119S89圖1-5按c成績排序57 I lrf姓名1flJSii351103511605116351103511C3511035L1數(shù)據(jù)結(jié)構(gòu)63&97L&66S7&79897 班級03511351103511B351163511B35110351103511圖1-6按數(shù)據(jù)結(jié)構(gòu)成績排序 結(jié)束結(jié)杲如圖1-7:r77wPEIJJLX侖入您的選擇為 0*peTS d(iy key to continmc圖1-7推出程序四、實(shí)驗(yàn)總結(jié)(1) exit(O)需要頭文件 #include 退出程序;(2) 比較字符串使用頭文件#中得strcmp ();復(fù)制字符串
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 影視公司同導(dǎo)演就2025年度話劇導(dǎo)演工作合同3篇
- 二零二五版農(nóng)家樂餐飲連鎖加盟合同范本2篇
- 二零二五年度停車場設(shè)施維護(hù)保養(yǎng)承包合同2篇
- 二零二五年度餐飲臨時(shí)工工作時(shí)間與休假合同
- 二零二五年度投資型房產(chǎn)購房合同意向書
- 2025年度貨車司機(jī)雇傭合同車輛運(yùn)輸安全培訓(xùn)及考核協(xié)議
- 二零二五年度個(gè)人車輛抵押貸款管理合同
- 2025年度小微企業(yè)創(chuàng)業(yè)貸款合同
- 二零二五年磚塊購銷及裝配式建筑產(chǎn)業(yè)鏈優(yōu)化合同3篇
- 2025版木屑生物質(zhì)炭應(yīng)用推廣承包合同范本4篇
- 華為全屋智能試題
- 第三單元名著導(dǎo)讀《經(jīng)典常談》知識清單 統(tǒng)編版語文八年級下冊
- 第十七章-阿法芙·I·梅勒斯的轉(zhuǎn)變理論
- 焊接機(jī)器人在汽車制造中應(yīng)用案例分析報(bào)告
- 合成生物學(xué)在生物技術(shù)中的應(yīng)用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財(cái)務(wù)分析報(bào)告
- 無違法犯罪記錄證明申請表(個(gè)人)
- 大學(xué)生勞動(dòng)教育PPT完整全套教學(xué)課件
- 繼電保護(hù)原理應(yīng)用及配置課件
- 《殺死一只知更鳥》讀書分享PPT
評論
0/150
提交評論