怎么使用Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法-創(chuàng)新互聯(lián)

這篇文章主要介紹了怎么使用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)頁設(shè)計(jì)開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗(yàn),各類網(wǎng)站都可以開發(fā),成都品牌網(wǎng)站建設(shè),公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計(jì),建網(wǎng)站費(fèi)用,建網(wǎng)站多少錢,價(jià)格優(yōu)惠,收費(fèi)合理。

第一種算法思路:

第一步:隨機(jī)出來一個(gè)數(shù)組的下標(biāo)

第二步:判斷下標(biāo)對(duì)應(yīng)的值是否等于被查找的值,是的話終止,已找到,否的話轉(zhuǎn)第三步。

第三步:判斷是否隨機(jī)完數(shù)組的所有下標(biāo),是的話終止,沒找到,否的話轉(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ī)到了字典中的所有值,來決定是否接著循環(huán)
  print 'no'
  break

第二種算法思路:

線性查找法,即在數(shù)組中順序的查找key值,找到就終止,沒找到的話,一直查找到數(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 '沒找到'

第三種算法思路:

實(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é)淺,還沒有具體分析。

感謝你能夠認(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í)等著你來學(xué)習(xí)!

當(dāng)前標(biāo)題:怎么使用Python實(shí)現(xiàn)在某個(gè)數(shù)組中查找一個(gè)值的算法-創(chuàng)新互聯(lián)
當(dāng)前地址:http://muchs.cn/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開發(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í)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)