這篇文章主要介紹了怎么使用Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè),為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)開(kāi)發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開(kāi)發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。第一種算法思路:
第一步:隨機(jī)出來(lái)一個(gè)數(shù)組的下標(biāo)
第二步:判斷下標(biāo)對(duì)應(yīng)的值是否等于被查找的值,是的話終止,已找到,否的話轉(zhuǎn)第三步。
第三步:判斷是否隨機(jī)完數(shù)組的所有下標(biāo),是的話終止,沒(méi)找到,否的話轉(zhuǎn)第一步。
代碼如下:
#本程序的功能是在字典中查找存在某個(gè)值 import random di = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6} key = 2 di1 = {} while True: tmp = random.choice(di.keys()) #隨機(jī) if di[tmp] == key: print 'ok' #已找到key值 break di1.update({tmp:di[tmp]}) #更新字典di1 if di1 == di: #判斷是否隨機(jī)到了字典中的所有值,來(lái)決定是否接著循環(huán) print 'no' break
第二種算法思路:
線性查找法,即在數(shù)組中順序的查找key值,找到就終止,沒(méi)找到的話,一直查找到數(shù)組的末尾。
代碼如下:
# -*- encoding:utf-8 -*- li = [1,2,3,4,5,6] key = 90 i = len(li)-1 while i >= 0: if li[i] == key: print '在li[%d]的處找到key值' % i break i -= 1 else: print '沒(méi)找到'
第三種算法思路:
實(shí)際上是遞歸的二分查找算法,代碼如下:
#python實(shí)現(xiàn)遞歸的二分查找算法 li = [1,2,3,4,5,6,7] def find(li,key): if len(li)==1: if li[0] == key: return True return False m = len(li)/2 if find(li[:m],key) or find(li[m:],key): return True else: return False print find(li,8)
對(duì)于算法的代碼實(shí)現(xiàn)還有待優(yōu)化,對(duì)于上述三種算法的運(yùn)行時(shí)間,因本人才疏學(xué)淺,還沒(méi)有具體分析。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“怎么使用Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
當(dāng)前標(biāo)題:怎么使用Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法-創(chuàng)新互聯(lián)
當(dāng)前地址:http://m.newbst.com/article26/iogjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、動(dòng)態(tài)網(wǎng)站、網(wǎng)站制作、建站公司、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容