美文网首页
Python 二分法(递归,while)

Python 二分法(递归,while)

作者: raphah | 来源:发表于2020-03-24 23:46 被阅读0次
def binarysearch1(_list, target_num):
    low ,height, count= 0,len(_list)-1,0
    mid = hight // 2
    while count < mid:
        count += 1
        center = (low + hight) // 2
        if _list[center] > target_num:
            hight = center - 1
        elif _list[center] < target_num:
            low = center + 1
        else:
            return True
    return False


def binarysearch2(_list,target_num):
    mid = (len(_list))//2
    if len(_list) > 1:
        if _list[mid] > target_num:
            ret = binarysearch2(_list[:mid],target_num)
            return ret
        elif _list[mid] < target_num:
            ret = binarysearch2(_list[mid:],target_num)
            return ret
        else:
            return True
    else:
        if _list[0] == target_num:
            return True
        else:
            return False

相关文章

网友评论

      本文标题:Python 二分法(递归,while)

      本文链接:https://www.haomeiwen.com/subject/yvezyhtx.html