Py学习  »  Python

为什么python中的递归二进制搜索函数不起作用

BLINAK • 3 年前 • 1374 次点击  

我需要编写一个简单的递归函数,从index:left到index:right搜索数组。我们不必担心无效的左输入和右输入,它们总是正确的。如果数组中有一个值等于键,它将返回该值的索引。如果密钥不在数组中,它将返回 -1. 我真的不知道为什么我的函数不起作用。我觉得应该。只有当键是数组的第一个索引时,它才有效。

def binary_search_recursive(array: List[int], left: int, right: int,
                            key: int) -> int:
    if left <= right:
        if array[left] == key:
            return left
        else:
            binary_search_recursive(array, left + 1, right, key)
    return -1

测试:

binary_search_recursive([0,1,5,6,23,45], 0, 5, 5)

应返回:

2

返回:

-1
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129258
 
1374 次点击  
文章 [ 3 ]  |  最新文章 3 年前