Commit 7572e031 by BellCodeEditor

auto save

parent b250abfe
Showing with 20 additions and 3 deletions
# 使用二分查找法,找出9和20在列表里面的索引
num_list = [1, 3, 5, 8, 11, 15, 17, 18, 20, 21]
\ No newline at end of file
bingo_num = 20 # 要查找的数
num_list = [1, 3, 5, 8, 11, 15, 17, 18, 20, 21] # 列表
def binary_search(alist,num) # 用def定义函数名为二分查找,括号里形参1:列表,形参2:要查找的数
low = 0 # 设置最低索引为0
high = len(alist)-1 # 设置最高索引为列表长度-1
while low <= high: # 设置while循环,当最低小于等于最高,一直查找
mid = (low + high) // 2 # 中间值索引= 最低+最高的和÷2
guess = alist[mid] # 对应的中间值
if guess == num: # if条件判断,如果中间值=要查找的数
return mid # 将中间值返回并结束函数
elif guess < num: # 如果mid小于要查找的数
low = mid + 1 # 扩大查找范围,中间值+1,将最低索引引到mid右边
else: # 否则
high = mid - 1 # 缩小查找范围,中间值-1,将最高索引引到mid左边
return None # 函数没有返回值时,默认返回None
result = binary_search(num_list,20) # 调用自定义函数,括号内形参1:列表和要查找的数
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