我正在用 Python 开发一个二分搜索函数。它不起作用并且显示为无任何结果。
我尝试用伪代码建立逻辑,我的老师说它有效,但是他们不知道为什么算法和函数会做他们正在做的事情。我已经在我的伪代码上去掉了脂肪,并且很多人已经能够解决我的问题。
def binary_search(array,item):
start_point = 0
end_point = len(array)
mid_point = int((start_point + end_point) / 2)
array.sort()
print(array)it
while array[mid_point] != item:
if array[mid_point] > item:
start_point = mid_point
elif array[mid_point] < item:
end_point = mid_point
if array[mid_point] == item:
print(mid_point)
binary_search([0,99,2,6,4,8],7)
我希望这个函数能够工作,以便当您输入数组和搜索词时,它会显示数组中的位置(索引值)
最佳答案
您实际上并没有对 start_point
和 end_point
执行任何操作。
此外,如果中间的元素大于您要查找的项目,您是否不想将 end_point
移动到中间?同样的情况也适用于您的 elif 语句 - 如果中间的元素小于您要查找的项目,您需要将 start_point
移动到中间。
关于python - 我的 Python 中的二分搜索功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55390961/