Commit eac9c6ad by BellCodeEditor

auto save

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