版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、本文格式為word版,下載可任意編輯二分搜索算法實驗報告 試驗一 二分搜尋算法試驗報告 一 試驗?zāi)康?1、 理解分治算法得概念與基本要素; 2、 理解遞歸得概念; 3、 把握設(shè)計有效算法得分治策略; 4、 通過二分搜尋技術(shù)學(xué)習(xí)分治策略設(shè)計技巧; 二 二. 試驗內(nèi)容及要求 1. 使用二分搜尋算法查找任意個有序數(shù)列中得指定元素。 2 通過上機試驗進行算法實現(xiàn)。 . 保存與打印出程序得運行結(jié)果,并結(jié)合程序進行分析,上交試驗報告。 4、 至少使用兩種方法進行編程。 三 三. 試驗原理 二分搜尋算法也稱為折半查找法,它充分利用了元素間得次序關(guān)系,采納分治策略,可在最壞得狀況下用 o(lo n)完成搜尋任
2、務(wù)。 【基本思想】將個元素分成個數(shù)大致相同得兩半,取 an與欲查找得 x 作比較,假如n/2則找到,算法終止。假如 xan/2,則我們只要在數(shù)組得左半部連續(xù)搜尋 x(這里假設(shè)數(shù)組元素呈升序排列)。假如 xa/2,則我們只要在數(shù)組 a 得右半部連續(xù)搜尋。 二分搜尋法得應(yīng)用極其廣泛,而且它得思想易于理解。第一個二分搜尋算法早在 146 年就消失了,但就是第一個完全正確得二分搜尋算法直到92 年才消失。bentey 在她得著作wrtg corect prras中寫道,0%得計算機專家不能在 2 小時內(nèi)寫出 完全正確得二分搜尋算法。問題得關(guān)鍵在于精確地制定各次查找范圍得邊界以及終止條件得確定,正確地歸
3、納奇偶數(shù)得各種狀況,其實整理后可以發(fā)覺它得詳細算法就是很直觀得。 ² 方法一:直接查找 窮舉法遍歷 ² 方法二:遞歸查找 #incluetdi、h #efne ma 3 i binrear( a,nt x,int lt,nt igh) if(lefrig) rt 1; els left=(et+rigt)/2; f(lft) retr eft; ele if(xlet) binarysearch(a,lft,rght); ese inaryseh(,x,ft-righ,lt+); main() in max; int d,x,i,,p; rnf(輸?shù)脗€數(shù)n); canf(%
4、d,); printf(數(shù)組數(shù)據(jù)n); for(i0;i;i+) scanf(%d,ai); fo (i=0;in-;i+) p=i; r (j+1;jn;j+) i (apaj) p=; if (p!=) ap; p=a; ai; fo(i=0;in;i+) pinf(%d ,ai); pit(輸入要查找得數(shù)n); scanf(%d,); oun=inarysarc(,,0,n); f(fon=-1) rint(未找到); else prinf(要查找得數(shù)在第 個n,found); ² 方法三:迭代查找 #incdedo、 #defne m 30 nt binarysarch(i
5、a,int x,it n) int eft =0; int ri=n-1; it middle; whe(eft=riht) midle(lft+right)/2; i(x=mdd) retrn dle; if(xamidde) ftmiddle+; l right=middle-1; rurn; in() int amax; int found,x,n,i,j,p; rinf(數(shù)得個數(shù)); anf(%d,n); print(數(shù)組數(shù)據(jù)n); f(i=0;in;i+) saf(%d,ai); or (i=;i-;+) =i; fr (=i+;n;j+) if (aaj) p=j; f (!=j)
6、 x=ap; ap=i; a=; for(i=0;in;i+) pnt(d ,i); rnf(輸入要查找得數(shù)n); sc(%d,x); fun=biaysearch(,x,n); if(fun=-1) print(未找到); else printf(要查找得數(shù)在第 %d 個,found+1); 四 程序代碼 變量定義說明: bnrysearh()算法: a-數(shù)組 k-要查找得元素 lft左標(biāo)志 rh-右標(biāo)志 (n-數(shù)據(jù)個數(shù)) man()主函數(shù): 標(biāo)下為值其到找,到找未示表-,志標(biāo)到找否是就-dnuox-要查找得元素 n-元素個數(shù) i,,p-循環(huán)掌握變量 (1)、遞歸查找 ncudestdio、
7、h din mx 30 int binayseach(int a,int ky,nt left,nt ght) in md(riht-righ)2+lef; f(amid=k) reur md; if(let=rig) reurn 1; lse if(keyamd) retun inaysrch(,key,mid+1,ight); else if(kaid) eturn binarearc(a,key,left,mi 1); rturn ; it i(oid) nt max; in fond,x,n,i,j,p; pif(數(shù)據(jù)個數(shù):); san(%,); print(輸入數(shù)據(jù):n); for(
8、=0;in;i+) pf(請輸入第d 個數(shù)據(jù):,); sca(%,a); r (i;n-1;i+) /選擇排序 p=i; )+j;j;1+=j(rof i(paj) ;=p )j=!( i x=ap; ap=ai; aix; rit(排序后得數(shù)據(jù)如下:); for(i0;in;+) prnf(d ,a); printf(n); printf(輸入要查找得數(shù):); scanf(%d,); int lef=0,igh=n; foundbiarserch(a,,left,right); i(found=1) prif(未找到n); ele printf(要查找得數(shù)在第%d 個,fud1); (2)、
9、非遞歸查找 #cluesio、h defi max 3 int binaryarch(n , int key, ln) t dlen/; if (ey=ami) ern i; it let0; in rghtn-; hile(let=right) 找查代迭 md=(riht+lt)/2; if(eyamid) riht=id1; ele if(keyamd) ft=id; lse retun mi; return -; nt min(voi) int amax; nt foud,x,n,i,j,p; print(數(shù)據(jù)個數(shù):); scan(%d,); pintf(輸入數(shù)據(jù):n); for(i=0
10、;in;i+) ;)i,:據(jù)數(shù)個%第入輸請(tirp scanf(%d,ai); fr (i=;in1;+)/ 序排擇選 ;i=p fr(j=+1;j;j+) if(apaj) =j; i (p!=j) x=ap; ap=a; =x; pinf(排序后得數(shù)據(jù)如下:); for(i=0;n;i+) prntf(%d ,ai); printf(n); print(輸入要查找得數(shù):); scan(%d,x); t lft=0,rghn; found=naysech(a,x,n); if(foud=) rinf(未找到); ls pintf(要查找得數(shù)在第%d 個n,fud+1); 五 結(jié)果運行與分析 找到要查找得數(shù)據(jù): 未找到要查找得數(shù)據(jù): 六心得與體會 通過這次試驗,鞏固了自己對二分搜尋算法得理解,它就是分治法得一個特別例子,由此也對分治法有了更深一層次得熟悉。分而治之,化簡單為簡潔,不只就是在算法中,在日常生活中也就是極其重要得。正如 betley 在她得著作witig correct rams中所說,能夠完整得寫出二分搜
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五農(nóng)行個人貸款抵押合同資產(chǎn)保全操作流程
- 2025年度綠色建筑項目融資及還款合同3篇
- 二零二五年度農(nóng)村土地流轉(zhuǎn)農(nóng)民公寓產(chǎn)權(quán)登記合同
- 2025年度美術(shù)作品版權(quán)授權(quán)與收益分成合同
- 2025個人信用卡透支額度調(diào)整合同補充協(xié)議3篇
- 二零二五年度城鄉(xiāng)規(guī)劃編制與實施監(jiān)督合同4篇
- 二零二五年度土地儲備項目土地資源評估委托合同
- 2025年度別墅裝修材料環(huán)保檢測認(rèn)證合同3篇
- 2025年度建筑工程合同履行與索賠風(fēng)險防控指南2篇
- 第三人民醫(yī)院二零二五年度肉類配送服務(wù)及食品安全監(jiān)控協(xié)議3篇
- 充電樁巡查記錄表
- 阻燃材料的阻燃機理建模
- CJT 511-2017 鑄鐵檢查井蓋
- 配電工作組配電網(wǎng)集中型饋線自動化技術(shù)規(guī)范編制說明
- 職業(yè)分類表格
- 2024高考物理全國乙卷押題含解析
- 廣東省深圳高級中學(xué)2023-2024學(xué)年八年級下學(xué)期期中考試物理試卷
- 介入科圍手術(shù)期護理
- 青光眼術(shù)后護理課件
- 設(shè)立工程公司組建方案
- 《物理因子治療技術(shù)》期末考試復(fù)習(xí)題庫(含答案)
評論
0/150
提交評論