順序查找時(shí)間復(fù)雜度為O(n)
我們可以借助Python中的函數(shù)enumerate,通過enumerate遍歷列表返回其索引和值
def linnear_search(li, val):
for ind, v in enumerate(li):
if v == val:
return ind
else:
return None
也可以通過列表長(zhǎng)度依次遍歷:文章來源:http://www.zghlxwxcb.cn/news/detail-650794.html
def linear_search(li, val): # 順序查找復(fù)雜度為O(n)
for i in range(len(li)):
if li[i]==val:
return i
return
O(1)<O(logn)<O(n)<O(nlogn)<O(n*n)
但是二分查找時(shí)間復(fù)雜度為O(logn):文章來源地址http://www.zghlxwxcb.cn/news/detail-650794.html
def binary_search(li,val):
left=0
right=len(li)-1
while left<=right:
mid=(left+right) // 2
if li[mid]==val: # 最后會(huì)找到mid
return mid
elif li[mid]>val: # mid值大與查找值,就需要去左半側(cè)查找,right指針就改變
right=mid-1
else:
left=mid+1
else:
return None
到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu)算法--1 順序查找二分查找的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!