5.4.1順序查找課件-浙教版高中信息技術(shù)選修1_第1頁(yè)
5.4.1順序查找課件-浙教版高中信息技術(shù)選修1_第2頁(yè)
5.4.1順序查找課件-浙教版高中信息技術(shù)選修1_第3頁(yè)
5.4.1順序查找課件-浙教版高中信息技術(shù)選修1_第4頁(yè)
5.4.1順序查找課件-浙教版高中信息技術(shù)選修1_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

5.4.1順序查找查找又稱檢索,計(jì)算機(jī)根據(jù)所給條件查找出滿足條件的對(duì)象,即在存儲(chǔ)的一批數(shù)據(jù)內(nèi)尋找出一個(gè)特定的數(shù)據(jù),或者確定在該批數(shù)據(jù)內(nèi)是否存在這樣的數(shù)據(jù)。若沒(méi)有找到滿足條件的對(duì)象,則返回特定值,表明查找失??;若查找到滿足條件的對(duì)象,則表明查找成功,一般要求返回該對(duì)象的存儲(chǔ)位置或?qū)ο笾当旧?。通常,程序?qū)凑詹檎业慕Y(jié)果(找到或未找到)來(lái)決定接著應(yīng)執(zhí)行后面哪一個(gè)計(jì)算步驟。順序查找順序查找又稱線性查找,從順序表的一端開(kāi)始,依次將每個(gè)元素的關(guān)鍵字與給定值key(查找鍵)進(jìn)行比較。若某個(gè)元素的關(guān)鍵字等于key,則表明查找成功;若所有元素都比較完畢仍找不到,則表明查找失敗。如下圖所示,在規(guī)模為8的數(shù)組d中,分別按順序查找算法尋找數(shù)據(jù)18和15的情況,處理過(guò)程中找到的第4個(gè)數(shù)組元素d[3]中的數(shù)據(jù)與18相等,表示8個(gè)數(shù)據(jù)中存在值為18的元素;而若key為15時(shí),查找完所有數(shù)據(jù)仍未找到,表示8個(gè)數(shù)據(jù)中不存在值為15的元素。18keyd252213181411171901234567到此處已找到15keyd252213181411171901234567查完所有數(shù)據(jù)仍未找到順序查找過(guò)程實(shí)例時(shí)間復(fù)雜度為O(n)開(kāi)始i0i≤n-1?d[i]=key?ii+1是否找到,輸出信息未找到,輸出信息結(jié)束順序查找算法流程圖是否實(shí)現(xiàn)此算法的Python程序如下:d=[25,22,13,18,14,11,17,19]key=18flag=Falselength=len(d)foriinrange(length):ifd[i]==key:flag=Truebreakifflag=True:print(“查找成功!”)else:print(“未找到”)順序查找算法也可以寫(xiě)成函數(shù)的形式,如下所示:defseq_search(s,a):length=len(s)flag=Falseforiinrange(length):ifs[i]==a:flag=Truebreakifflag==True:returnielse:returnFalsed=[25,22,13,18,14,11,17,19]key=15result=seq_search(d,key)print(result)小結(jié)順序查找本質(zhì)上是一種枚舉算法思想,順序查找程序就是用循環(huán)來(lái)枚舉所有要查找的對(duì)象,然后在循環(huán)體內(nèi)用條件判斷當(dāng)前枚舉出的對(duì)象是否等于查找對(duì)象。假設(shè)n個(gè)數(shù)據(jù)依次存儲(chǔ)在長(zhǎng)度為n的數(shù)組a中,查找鍵為key,自定義函數(shù)seq_search(a,key)返回?cái)?shù)組a中首個(gè)值為key的元素下標(biāo),若找不到key則返回-1。defseq_search(a,key):foriinrange(len(a)):ifa[i]==key:returnielse:return-1練一練1.某個(gè)列表中共有m個(gè)元素,進(jìn)行順序查找之后查找失敗,則其中元素的比較次數(shù)是()A.mB.m2C.m-1D.(m+1)//2A2.有如下python程序段:a=[2,6,8,8,2,4,7,3]p=0foriinrange(1,len(a)):ifa[i]>a[p]:p=i則運(yùn)行該段代碼后,變量p的值為()A.0B.2C.3D.8B3.有如下Python程序段:key=int(input(“key=”))s=0a=[]foriinrange(10):a.append(i+1)foriinrange(len(a)):ifa[i]%key==0:s=s+1print(s)當(dāng)輸入的key=5時(shí),程序運(yùn)行結(jié)束后,輸出的值為()A.0B.1C.2D.3C4.查找一個(gè)英文句子中是否包含某個(gè)單詞,可以使用順序查找的方法,實(shí)現(xiàn)上述功能的Python程序段如下,請(qǐng)?jiān)趧澗€處填入合適的代碼。long=“Ihaveanappleandanorange.”word=input(“輸入要查找的單詞:”)flag=____________________________foriinrange(len(long)-len(word)):iflong[______________]==word:print(“yes”)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論