從順序查找到二分查找課件_第1頁
從順序查找到二分查找課件_第2頁
從順序查找到二分查找課件_第3頁
從順序查找到二分查找課件_第4頁
從順序查找到二分查找課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

從順序查找到二分查找從順序查找到二分查找查找給定一個值Key,在含有n個元素的數(shù)組中找出等于給定值Key的元素。若找到,則查找成功,返回元素的信息或該元素在表中的位置;否則查找失敗,返回相關的指示信息。查找給定一個值Key,在含有n個元素的數(shù)組中找出等于給定值K順序查找從數(shù)組的一端開始,順序掃描數(shù)組,依次將掃描到的元素和給定值Key相比較。若當前掃描到的元素與Key相等,則查找成功;若掃描結(jié)束后,仍未找到元素等于Key的結(jié)點,則查找失敗。順序查找從數(shù)組的一端開始,順序掃描數(shù)組,依次將掃描到的元素和開始輸入待查找的值給變量keyi=1i<=n?a(i)=key?Yi=i+1N輸出“找不到”N輸出“找到了”Y程序流程圖結(jié)束開始輸入待查找的值給變量keyi=1i<=n?a(i)=k順序查找的效率n個元素的數(shù)組:最快:1次最慢:n次順序查找的效率n個元素的數(shù)組:思考如果數(shù)組是有序的,有沒有效率更高的算法?二分(對分)查找思考如果數(shù)組是有序的,有沒有效率更高的算法?二分(對分)查找二分查找(在一個升序的數(shù)組里)i=1:j=n:key=120確定查找的中點位置m=(i+j)\2將待找的Key與a(m)比較:若相等,則查找成功并返回此位置,查找結(jié)束。否則確定新的查找區(qū)間,繼續(xù)二分查找:若Key<a(m),則要找的Key可能在m左邊的子數(shù)組a(1..m-1)中,故新的查找區(qū)間是左子數(shù)組a(1..m-1)中。若Key>a(m),則要找的Key可能在m的右子數(shù)組a(m..n)中,即新的查找區(qū)間是右子表a(m+1..n)?!植檎遥ㄔ谝粋€升序的數(shù)組里)i=1:j=n:key2156789810110611012012513021567898101106110120125130Key=10621567898101106110120125130i=1j=10m=(i+j)\2=5i=m+1=6j=10m=8Key>a(m)Key<a(m)i=6j=m-1=7m=6Key=a(m)215678981011061101201251302156Key=6521567898101106110120125130i=1j=10m=5j=m-1=4mid=2Key<a(m)2156789810110611012012513021567898101106110120125130i=1i=3j=4Key>a(m)m=3j=m-1=2i>j還繼續(xù)嗎??Key=65215678981011061101201251二分查找i=1,j=n確定查找的中點位置m=(i+j)\2將待找的Key與a(m)比較:若相等,則查找成功并返回此位置,查找結(jié)束。否則確定新的查找區(qū)間,繼續(xù)二分查找:若Key<a(m),則要找的Key可能在m左邊的子數(shù)組a(1..m-1)中,故新的查找區(qū)間是左子數(shù)組a(1..m-1)中。若Key>a(m),則要找的Key可能在mid的右子數(shù)組a(m+1..n)中,即新的查找區(qū)間是右子表a(m+1..n)。……找不到時結(jié)束的條件:i>j二分查找i=1,j=n開始輸入待查找的值給變量keyi=1:j=ni<=j?輸出“找不到”N輸出mY程序流程圖結(jié)束key<a(m)?NYj=m-1Ni=m+1Ym=(i+j)\2a(m)=key?開始輸入待查找的值給變量keyi=1:j=ni<=j課堂實踐課堂實踐從順序查找到二分查找課件總結(jié):順序查找與二分查找順序查找二分查找對數(shù)組的要求無要求必須是有序的假設數(shù)組是有序的前提比較的次數(shù)<=n<=int(log2n)+1查找效率低高總結(jié):順序查找與二分查找順序查找二分查找對數(shù)組的要求無要求必從順序查找到二分查找從順序查找到二分查找查找給定一個值Key,在含有n個元素的數(shù)組中找出等于給定值Key的元素。若找到,則查找成功,返回元素的信息或該元素在表中的位置;否則查找失敗,返回相關的指示信息。查找給定一個值Key,在含有n個元素的數(shù)組中找出等于給定值K順序查找從數(shù)組的一端開始,順序掃描數(shù)組,依次將掃描到的元素和給定值Key相比較。若當前掃描到的元素與Key相等,則查找成功;若掃描結(jié)束后,仍未找到元素等于Key的結(jié)點,則查找失敗。順序查找從數(shù)組的一端開始,順序掃描數(shù)組,依次將掃描到的元素和開始輸入待查找的值給變量keyi=1i<=n?a(i)=key?Yi=i+1N輸出“找不到”N輸出“找到了”Y程序流程圖結(jié)束開始輸入待查找的值給變量keyi=1i<=n?a(i)=k順序查找的效率n個元素的數(shù)組:最快:1次最慢:n次順序查找的效率n個元素的數(shù)組:思考如果數(shù)組是有序的,有沒有效率更高的算法?二分(對分)查找思考如果數(shù)組是有序的,有沒有效率更高的算法?二分(對分)查找二分查找(在一個升序的數(shù)組里)i=1:j=n:key=120確定查找的中點位置m=(i+j)\2將待找的Key與a(m)比較:若相等,則查找成功并返回此位置,查找結(jié)束。否則確定新的查找區(qū)間,繼續(xù)二分查找:若Key<a(m),則要找的Key可能在m左邊的子數(shù)組a(1..m-1)中,故新的查找區(qū)間是左子數(shù)組a(1..m-1)中。若Key>a(m),則要找的Key可能在m的右子數(shù)組a(m..n)中,即新的查找區(qū)間是右子表a(m+1..n)?!植檎遥ㄔ谝粋€升序的數(shù)組里)i=1:j=n:key2156789810110611012012513021567898101106110120125130Key=10621567898101106110120125130i=1j=10m=(i+j)\2=5i=m+1=6j=10m=8Key>a(m)Key<a(m)i=6j=m-1=7m=6Key=a(m)215678981011061101201251302156Key=6521567898101106110120125130i=1j=10m=5j=m-1=4mid=2Key<a(m)2156789810110611012012513021567898101106110120125130i=1i=3j=4Key>a(m)m=3j=m-1=2i>j還繼續(xù)嗎??Key=65215678981011061101201251二分查找i=1,j=n確定查找的中點位置m=(i+j)\2將待找的Key與a(m)比較:若相等,則查找成功并返回此位置,查找結(jié)束。否則確定新的查找區(qū)間,繼續(xù)二分查找:若Key<a(m),則要找的Key可能在m左邊的子數(shù)組a(1..m-1)中,故新的查找區(qū)間是左子數(shù)組a(1..m-1)中。若Key>a(m),則要找的Key可能在mid的右子數(shù)組a(m+1..n)中,即新的查找區(qū)間是右子表a(m+1..n)?!也坏綍r結(jié)束的條件:i>j二分查找i=1,j=n開始輸入待查找的值給變量keyi=1:j=ni<=j?輸出“找不到”N輸出mY程序流程圖結(jié)束key<a(m)?NYj=m-1Ni=m+1Ym=(i+j)\2a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論