0

これが私の二分探索です。mid は更新されず、無限にループします。

def binary_search (z, A, start, end):
    if len(A) == 0:
        return None
    else:
        mid = start + (end - start) / 2
        if (z < A[mid]) and (z > A[mid-1]):
            return A[mid-1]
        elif (z < A[mid]):
            return binary_search(z, A, start, mid)
        elif (z > A[mid]):
            return binary_search(z, A, mid, end)
4

1 に答える 1