Commit b2447b65 by BellCodeEditor

save project

parent b250abfe
Showing with 16 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 = [1, 3, 5, 8, 11, 15, 17, 18, 20, 21]
def binary_search(list,item):
low = 0 # 定义最小下标
high = len(list)-1 # 定义最大下标
while low <= high: #while循环,保证可以遍历到指定区域的元素,直到被被寻找的值和中间值相等
mid = int((low + high)/2) # 寻找数组的中间值
guess = list[mid] # 获取列表最中间的元素
if guess == item:
return mid # 进行条件判断,将中间值和被寻找的值进行比较,相等则返回该值
if guess > item:
high = mid-1 # 如果被寻找的值小于中间值,则最大下标变化为中间值的前一个元素下标
else:
low = mid + 1 # 如果被寻找的值大于中间值,则最小下标变化为中间值的后一个元素下标
return None
print(binary_search(num_list,7)) # 输入一个有序列表和一个被寻找的值
\ 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