Commit eac9c6ad by BellCodeEditor

auto save

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