python 二分查找法

目录

二分查找法

二分查找法的局限性:只能针对从小到大排列的有列表
二分查找法的优点:可以节省内存的空间和可以提高查找的效率问题


#  定义一个列表

number_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


def binary_search(orderly_list, number):
    print(orderly_list)  # 看每次查找后的剩余部分
    if len(orderly_list) == 0:
        print('not exist')
        return
    mid_index = len(orderly_list) // 2
    if number > orderly_list[mid_index]:
        #  要查找的数字大于列表中间值说明要往右查找
        #  继续调用自己找
        binary_search(orderly_list[mid_index + 1:], number)  # 要查找的数字肯定不会变列表折半继续往右找
    elif number < orderly_list[mid_index]:
        #  要查找的数字大于列表中间值说明要往左查找
        #  继续调用自己找
        binary_search(orderly_list[0:mid_index], number)  # 要查找的数字肯定不会变列表折半继续往左找
    else:
        print('find exist')
        print(orderly_list.index(number))  # 查看找到的数字所在的列表索引位置


binary_search(number_list, 20)

"""结果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
[7, 8, 9, 10] 
[10]
[]
not exist
"""

猜你喜欢

转载自www.cnblogs.com/xiaolang666/p/12590196.html