为什么我的python二进制搜索程序不能正常工作?

问题描述 投票:-2回答:2
# Binary search in python
def BinarySearch(A,n,x):
    start = n - 1
    end = 0
    while start <= end:
        mid = (start + end)//2
        if x == A[mid]:
            return mid
        elif x < A[mid]:
            end = mid - 1
        else:
            start = mid + 1
    return -1


A = [4, 5, 7, 45, 64, 66, 80, 81, 92, 99]
n = len(A)
x = 64
result = BinarySearch(A,n,x)
if result != -1:
    print(result)
else:
    print("element is not in the array")

输出:元素不在数组中无论我给这段代码提供什么元素,它总是给出同样的输出。

python binary-search
2个回答
0
投票

交换开始和结束变量的值。

    start = 0
    end = n-1

0
投票

那是因为你给algo的开始和结束分配了错误的值.

start = 0
end = n - 1

把这些值放进去,它就会运行。

PoW

© www.soinside.com 2019 - 2024. All rights reserved.