python - 我的 Python 中的二分搜索功能不起作用

标签 python arrays

我正在用 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_pointend_point 执行任何操作。

此外,如果中间的元素大于您要查找的项目,您是否不想将 end_point 移动到中间?同样的情况也适用于您的 elif 语句 - 如果中间的元素小于您要查找的项目,您需要将 start_point 移动到中间。

关于python - 我的 Python 中的二分搜索功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55390961/

相关文章:

java - 从文本文件用 Java 创建菜单语句

arrays - 使用另一个数组的 Swift Realm 对象过滤器数组

c - 如何仅在C中接受字符输入?

java - 使用数组 io java 结果错误

python - Python 中的位置倒排索引

python - 使用 "tornado.httpclient"获取 "POST https"站点获取 "HTTPError: HTTP 599"

javascript - 使用 javascript 或 jquery 在 session 中存储 Flask 数据

python - 糟糕,未处理的类型 3 ('unimplemented' ) 将 SFTP 与 Paramiko 连接时

python - 按钮在轴中的定位 (matplotlib)

c - 从两个数组中输出不同的元素