python3 二分法查詢

2022-09-07 02:30:21 字數 1325 閱讀 2154

'''

二分法查詢

有序列表

掐頭去尾取中間

查詢列表中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)

print

(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 每一次查...