'''二分法查詢
有序列表
掐頭去尾取中間
查詢列表中xx在不在列表中,在,則返回索引值
'''#
lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54, 67, 89, 99] #使用in判斷,不使用二分法
#n = 49
#for i, v in enumerate(lst):
#if v == n:
#print("找到了,索引為%d" % i)
#break
#else:
#print("沒找到.")
'''二分查詢
'''#
lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54, 67, 89, 99]
#n = 49
#left = 0
#right = len(lst) - 1
#while left <= right:
#mid = (left + right) // 2
#if n > lst[mid]:
#left = mid + 1
#elif n < lst[mid]:
#right = mid - 1
#else:
#print("找到了,索引為:%d" % mid)
#break
#else:
#print("沒找到.")
'''使用遞迴呼叫完成二分法查詢
'''lst = [1, 4, 6, 8, 9, 21, 23, 26, 35, 48, 49, 54, 67, 89, 99]
n = 49
defbinarysearch(lst, n, left, right):
if left <=right:
mid = (left + right)//2
if n right = mid - 1
elif n >lst[mid]:
left = mid + 1
else
:
return
"找到了,索引為:%d
" %mid
return
binarysearch(lst, n, left, right)
else
:
print("
沒找到.")
return -1ret = binarysearch(lst, n, 0, len(lst)-1)
(ret)
python二分法查詢 Python 二分法查詢
二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...
二分查詢 python3 二分法查詢演算法及功能擴充套件
二分查詢顧名思義就是從序列的中間位置查詢,都將目標數字與序列的中間位置數字進行對比,如果目標數字等於中間位置數字則返回對應的序列索引,如果目標數字大於中間位置數字,則繼續從右側的序列中利用二分查詢,如果目標數字小於中間位置數字,則繼續從左側的序列中利用二分查詢,直到查到目標數字為止。二分法查詢的效率...
Python 二分法查詢
二分法演算法原理 陣列是有序陣列,確定該期間的中間位置center 將查詢的值key與array center 比較。若相等,查詢成功返回此位置 否則確定新的查詢區域,繼續二分查詢。新區域的確定 如果key arrey center 則起始位置變為center 1,結束位置不變 如果key 每一次查...