gpt4 book ai didi

python - 如何在此代码中返回位置而不是 None (二分查找)

转载 作者:行者123 更新时间:2023-11-28 21:32:47 26 4
gpt4 key购买 nike

如果键等于lst[mid],我尝试使用 return mid 返回二分搜索中的位置,但它给出的是 None 。我能够打印中间:

def binary_search(lst,l,r,key):
print (lst[l:r])
mid = (l + r) // 2

if key == lst[mid]:
print([lst[mid]])
#print(mid)
return mid

elif key > lst[mid]:
l = mid + 1
binary_search(lst,l,r,key)

else:
r = len(lst[:mid])
binary_search(lst,l,r,key)


list = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

print(binary_search(list, 0, len(list), 14 ))

最佳答案

当您递归调用binary_search时,您需要返回结果。例如:

def binary_search(lst,l,r,key):
print (lst[l:r])
mid = (l + r )//2

if key == lst[mid]:
print ([lst[mid]])
#print (mid)
return mid

elif key > lst[mid]:
l = mid + 1
return binary_search(lst,l,r,key) # return me

else:
r = len(lst[:mid])
return binary_search(lst,l,r,key) # and me

关于python - 如何在此代码中返回位置而不是 None (二分查找),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55752231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com