Commit 27028c18 by BellCodeEditor

auto save

parent 98bbfb66
Showing with 19 additions and 2 deletions
# 使用二分查找法,找出9和20在列表里面的索引
num_list = [1, 3, 5, 8, 11, 15, 17, 18, 20, 21]
\ No newline at end of file
num_list = [0,1, 3, 5, 8, 11, 15, 17, 18, 20, 21,34,56,78,109,110,134,156]
def binary_search(num , num_list):
low = 0 # 定义最低索引
high = len(num_list)-1 # 最高的索引
while True: # 循环判断
mid = (low + high) // 2 # 获取中间索引
guess = num_list[mid] # 获取中间索引对应的数值 (猜测的数字)
if guess == num: # 判断 猜测的数字是不是等于你要查找的数字
return mid
elif low > high: # 判断 最低索引是不是大于最高索引
return None
elif guess < num: # 判断猜测的数字是不是小于查找的数字
low = mid + 1 # 最低索引等于中间索引 加 1
else: # 否则
high = mid - 1 # 最高索引等于中间索引 减 1
result = binary_search(11,num_list)
print(result)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment