



全文預覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗二 折半查找算法設(shè)計題目:折半查找算法設(shè)計問題描述:(1)分析掌握折半查找算法思想,在此基礎(chǔ)上,設(shè)計出遞歸算法和循環(huán)結(jié)構(gòu)兩種實現(xiàn)方法的折半查找函數(shù)。(2)編寫程序?qū)崿F(xiàn):在保存于數(shù)組的10000個有序數(shù)據(jù)元素中查找數(shù)據(jù)元素x是否存在。數(shù)據(jù)元素x要包含兩種情況:一種是數(shù)據(jù)元素x包含在數(shù)組中;另一種是數(shù)據(jù)元素x不包含在數(shù)組中(3)數(shù)組中數(shù)據(jù)元素的有序化既可以初始賦值時實現(xiàn),也可以設(shè)計一個排序函數(shù)實現(xiàn)。(4)根據(jù)兩種方法的實際運行時間,進行兩種方法時間效率的分析對比?;疽螅海?)10000個數(shù)據(jù)可以初始賦值時實現(xiàn),也可以調(diào)用系統(tǒng)的隨機函數(shù),再設(shè)計一個排序函數(shù)實現(xiàn)。(2)兩種方法時間效率的分析對比可以有兩種方法,一種是理論分析方法,一種是實際記錄運行時間。(3)提交實驗報告。測試數(shù)據(jù):運行算法時,當輸入的數(shù)據(jù)小于10000,例如輸入9999時,顯示該數(shù)據(jù)在數(shù)組中,下標為9998,并且分別顯示遞歸和循環(huán)結(jié)構(gòu)下的時間;當輸入的數(shù)據(jù)大于10000時,例如輸入20000時,顯示這個這個數(shù)據(jù)不再該數(shù)組中。算法思想:設(shè)有數(shù)組a中元素按從小到大的次序排列,a的下界下標為low, 上界下標為high,首先計算出a的中間位置下標mid=(low+high)/2,1.遞歸算法思想:比較x和amid,若x=amid,則查找成功;若xamid,則隨后調(diào)用算法自身在下標為mid+1,上界下標為high的區(qū)間繼續(xù)查找。當查找區(qū)間小于等于0時,查找過程結(jié)束。2.循環(huán)結(jié)構(gòu)思想:用while(low = high)控制循環(huán),比較x和amid,若x=amid,則查找成功;若xamid,則隨后在下標為mid+1,上界下標為high的區(qū)間繼續(xù)查找。當查找區(qū)間小于等于0時,查找過程結(jié)束。模塊劃分:1.頭文件time.h中包含time()和difftime(end,start)函數(shù),分別實現(xiàn)取系統(tǒng)當前時間和end減去start的時間差; 2.頭文件stdlib.h中包含rand()函數(shù),實現(xiàn)隨機數(shù)的生成;3.void list(int a)實現(xiàn)對隨機數(shù)從小到大的排序;4.int Search(int a,int low,int high,int x)用遞歸算法實現(xiàn)折半查找數(shù)據(jù)元素的函數(shù);5.int BSearch(int a, int low, int high, int x)用循環(huán)結(jié)構(gòu)實現(xiàn)折半查找數(shù)據(jù)元素的函數(shù);6.void main()主函數(shù),測試用遞歸算法和循環(huán)結(jié)構(gòu)實現(xiàn)折半查找數(shù)據(jù)元素的函數(shù)。數(shù)據(jù)結(jié)構(gòu):源程序:#include#includeint Bsearch(int a,int x,int low,int high)int mid;if(lowhigh) return -1;mid=(low+high)/2;if(x=amid) return mid;else if(xamid)Bsearch(a,x,low,mid-1);elsereturn Bsearch(a,x,mid+1,high);int Csearch(int test,int x,int low,int high)for(int i=0;itesti) low=i+1;else high=i-1;if(i=high) return -1;void main()time_t start,end;double dif;int Bsearch(int a,int x,int low,int high);int Csearch(int test,int x,int low,int high);int a10000,x;int low=0,high=10000,mid=0;printf(請輸入要查找的元素:n);scanf(%ld,&x);printf(x=%ldn,x);for(int i=0;ihigh;i+)ai=i+1;int bn; time(&start);bn=Bsearch(a,x,0,10000);if(bn=-1) printf(x不在數(shù)組a中 !n);else printf(x在數(shù)組a中,下標為%dn,bn);time(&end);dif=difftime(end,start);printf(遞歸折半方法耗時為:%f秒n,dif); int flag; time(&start);flag=Csearch(a,x,0,10000);if(flag=-1) printf(x不在數(shù)組a中!n);else printf(x在數(shù)組a中,下標為%ldn,flag);time(&end); dif=difftime(end,start);printf(循環(huán)折半算法耗時為:%f秒n,dif); 測試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒行經(jīng)營合作協(xié)議
- 山東山東農(nóng)業(yè)工程學院招聘筆試真題2024
- 河南省豫地科技集團有限公司招聘筆試真題2024
- 石大學前兒童保育學課件3-2小兒常見病
- 企業(yè)民主管理制度建設(shè)的主要挑戰(zhàn)與瓶頸
- 分數(shù)教學設(shè)計-游麗穎
- 產(chǎn)教融合對地方經(jīng)濟發(fā)展的推動作用
- 2025至2030年中國玻璃馬克杯行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國燃油管總成行業(yè)投資前景及策略咨詢報告
- 學前教育論文答辯三分鐘陳述
- (侯云程)重大隱患判定+四個清零+執(zhí)法檢查指導目錄(演講版)
- 國家開放大學《建筑工程質(zhì)量檢驗》形考任務(wù)1-4附參考答案
- 紡織非遺:讓世界讀懂中國之美智慧樹知到期末考試答案章節(jié)答案2024年天津工業(yè)大學
- JGJT323-2014 自保溫混凝土復合砌塊墻體應用技術(shù)規(guī)程
- 勞動教育融入小學《道德與法治》教學的對策研究
- 遼寧省沈陽市和平區(qū)2023-2024學年七年級下學期期末道德與法治試題
- 廣東省汕頭市2023-2024學年高一下學期期末教學質(zhì)量監(jiān)測物理試題
- 湖南省懷化市2023-2024學年六年級下學期期末考試科學試題
- DZT 0447-2023 巖溶塌陷調(diào)查規(guī)范(1:50000)
- 多旋翼飛行原理(改)
- 2024年度全國社會工作者《社會工作實務(wù)》備考真題帶答案
評論
0/150
提交評論