Python正課46 二分法

2022-01-30 04:53:44 字數 1338 閱讀 8950

nums = [-3,4,7,10,13,21,43,77,89]

find_num = 10

for num in nums:

if num == find_num:

print('find it')

break

# 思路

# def binary_search(find_num,列表):

# mid_value = 找列表中間的值

# if find_num > mid_value:

# # 接下來的查詢應該是列表的右半部分

# # 列表 = 列表切片 切出右半部分

# # 本身的**(列表)

# binary_search(find_num,列表)

# elif find_num < mid_value:

# # 接下來的查詢應該是列表的左半部分

# # 列表 = 列表切片 切出左半部分

# # 本身的**(列表)

# binary_search(find_num,列表)

# else:

# print('find it')

nums = [-3, 4, 7, 10, 13, 21, 43, 77, 89]

find_num = 10

def binary_search(find_num, l):

print(l)

if len(l) == 0:

print('找的值不存在')

return

mid_index = len(l) // 2

if find_num > l[mid_index]:

# 接下來的查詢應該是列表的右半部分

# 列表 = 列表切片 切出右半部分

l = l[mid_index + 1:]

# 本身的**(列表)

binary_search(find_num, l)

elif find_num < l[mid_index]:

# 接下來的查詢應該是列表的左半部分

# 列表 = 列表切片 切出左半部分

l = l[:mid_index]

# 本身的**(列表)

binary_search(find_num, l)

else:

print('find it')

binary_search(find_num, nums)

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 ...

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

Python 二分法查詢

二分法演算法原理 陣列是有序陣列,確定該期間的中間位置center 將查詢的值key與array center 比較。若相等,查詢成功返回此位置 否則確定新的查詢區域,繼續二分查詢。新區域的確定 如果key arrey center 則起始位置變為center 1,結束位置不變 如果key 每一次查...