算法之二分法

时间:2021-06-01 22:09:10

补充小知识

算法:解决问题高效率的方法

ps:二分法用于容器类型里面的数字必须有大小顺序

来,咱们看代码

l = [1,3,5,12,57,89,101,123,146,167,179,189,345]
target_num = 345
def get_num(l,target_num):
    if not l:
        print('你给的工资 这个任务怕是没法做')
        return
    # 获取列表中间的索引
    print(l)
    middle_index = len(l) // 2
    # 判断target_num跟middle_index对应的数字的大小
    if target_num > l[middle_index]:
        # 切取列表右半部分
        num_right = l[middle_index + 1:]
        # 再递归调用get_num函数
        get_num(num_right,target_num)
    elif target_num < l[middle_index]:
        # 切取列表左半部分
        num_left = l[0:middle_index]
        # 再递归调用get_num函数
        get_num(num_left, target_num)
    else:
        print('find it',target_num)

get_num(l,target_num)