精心设计的二等分搜索法不会产生任何结果

时间:2019-03-19 16:17:44

标签: python-3.x

我写了这样的二等分搜索

步骤说明:
1.检查是否为空
2.选择中级索引作为进入测试
3.递归搜索
4.找到基本情况== nums [mid]

In [14]: %paste                                                                                       
from typing import List

def bi_search(nums: List[int], find: int) -> int:
    """
    mid value is the key here.
    """
    if len(nums) == 0:
        return -1
    else:
        mid = len(nums) // 2  #testEntry
        if find == nums[mid]:
            return mid 
        if find < nums[mid]:
            sub_nums = nums[:mid]
            bi_search(sub_nums, find)
        if find > nums[mid]:
            sub_nums = nums[mid:]
            bi_search(sub_nums, find)

## -- End pasted text --

运行

In [15]: nums = list(range(1000))                                                                     
In [16]: find = 456                                                                                   
In [17]: result = bi_search(nums, find)                                                               
In [18]: result                                                                                       
In [19]:

我仔细检查了程序,但没有发现错误。

我的二等分搜索有什么问题?

0 个答案:

没有答案