python實現定時傳送郵件
阿新 • • 發佈:2020-12-23
python資料結構與演算法之二分查詢法
1.2 如果放棄太早,你永遠都不知道自己會錯過什麼。
二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好,佔用系統記憶體較少;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。
原理很簡單,從中間開始找,找的值小於中間值,中間往前進行折半查詢;找的值大於中間值,中間往後進行折半查詢,一直找完所有數。但只適用有序
只要有兩種思路,一種遞迴,一種非遞迴
#遞迴
def Binary_search1(alist,k):
二分查詢法
n= len(alist)
mid=n//2#二分查詢法是針對增序的
if n>0:
if alist[mid]==k:
return True
elif k<alist[mid]:
return Binary_search(alist[:mid],k)
else:
return Binary_search(alist[mid+1:],k)
return False
#非遞迴
def Binary_search2(alist,k):
n= len(alist)
first=0
last=n-1
while first<=last:
mid=(first+last)//2
if alist[mid]==k:
return True
elif alist[mid]<k:
first=mid+1
else:
last=mid-1
return False
if __name__=="__main__" :
li=[1,2,3,8,6,54,85,95]
print(Binary_search1(li,3))
print(Binary_search1(li,78))
print(Binary_search2(li,3))
print(Binary_search2(li,78))
小編正在努力複習備考,更新有所粗糙請見解,還有8天考試就結束了哈。