數(shù)據(jù)結(jié)構(gòu)-基于C++語言(微課版) 課件 1-1 折半查找_第1頁
數(shù)據(jù)結(jié)構(gòu)-基于C++語言(微課版) 課件 1-1 折半查找_第2頁
數(shù)據(jù)結(jié)構(gòu)-基于C++語言(微課版) 課件 1-1 折半查找_第3頁
數(shù)據(jù)結(jié)構(gòu)-基于C++語言(微課版) 課件 1-1 折半查找_第4頁
數(shù)據(jù)結(jié)構(gòu)-基于C++語言(微課版) 課件 1-1 折半查找_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

折半查找的算法思想;折半查找的實現(xiàn);折半查找的性能分析。本節(jié)目錄:本節(jié)內(nèi)容:折半查找有序表的折半查找

有序表的折半查找

使用條件:線性表中的記錄必須按關(guān)鍵碼有序;必須采用順序存儲。基本思想:在有序表中,取中間記錄作為比較對象,若給定值與中間記錄的關(guān)鍵碼相等,則查找成功;若給定值小于中間記錄的關(guān)鍵碼,則在中間記錄的左半?yún)^(qū)繼續(xù)查找;若給定值大于中間記錄的關(guān)鍵碼,則在中間記錄的右半?yún)^(qū)繼續(xù)查找。不斷重復(fù)上述過程,直到查找成功,或所查找的區(qū)域無記錄,查找失敗。有序表的折半查找

折半查找的基本思想:

[r1………rmid-1]rmid[rmid+1………rn]如果k<rmid如果k>rmid查找左半?yún)^(qū)查找右半?yún)^(qū)k(mid=(1+n)/2)有序表的折半查找

例:查找值為14的記錄的過程:012345678910111213

7141821232931353842464952low=1high=13mid=7

high=6mid=3

high=2

mid=1

31>1418>147<14low=2mid=2

14=14非遞歸算法intBinSearch(intr[],intn,intk)//數(shù)組r[1]~r[n]存放查找集合{low=1;high=n;while(low<=high){mid=(low+high)/2;if(k<r[mid]) high=mid-1;elseif(k>r[mid]) low=mid+1;else returnmid;}return0;}有序表的折半查找

有序表的折半查找

遞歸算法intBinSearch(intr[],intlow,inthigh,intk){if(low>high) return0;else{mid=(low+high)/2;if(k<r[mid])returnBinSearch(r,low,mid-1,k);elseif(k>r[mid])returnBinSearch(r,mid+1,high,k);else returnmid;}}有序表的折半查找

折半查找的查找性能可以使用二叉查找樹來分析。樹中的每個結(jié)點對應(yīng)有序表中的記錄的位置。二叉查找樹的構(gòu)造方法:

⑴當(dāng)n=0時,二叉查找樹為空;

⑵當(dāng)n>0時,二叉查找樹的根結(jié)點是有序表中序號為mid=(n+1)/2的記錄,根結(jié)點的左子樹是與有序表r[1]~r[mid-1]相對應(yīng)的二叉查找樹,根結(jié)點的右子樹是與r[mid+1]~r[n]相對應(yīng)的二叉查找樹。有序表的折半查找

11個結(jié)點的二叉查找樹的構(gòu)造-11-22-33-44-510-1111-9-108-97-85-66-7內(nèi)部結(jié)點外部結(jié)點3691011784512有序表的折半查找

具有n個結(jié)點的二叉查找樹的深度為h=查找成功:在表中查找任一記錄的過程,即是二叉查找樹中從根結(jié)點到該記錄結(jié)點的路徑,和給定值的比較次數(shù)等于該記錄結(jié)點在樹中的層數(shù)。查找失?。翰檎沂〉倪^程就是走了一條從根結(jié)點到外部結(jié)點的路徑,和給定值進(jìn)行的關(guān)鍵碼的比較次數(shù)等于該路徑上內(nèi)部結(jié)點的個數(shù)。從折半查找判定樹上容易看出,無論是查找成功還是查找失敗,關(guān)鍵碼的比較次數(shù)都小于等于二叉查找

溫馨提示

  • 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

提交評論