# -*- coding:UTF-8 -*-

"""
二分查找算法
前提:排好序的数组,文件或者其它存储类型
原理:每次获取中间的元素跟要查找的元素比较,根据比较结果的不同移动left指针或者right指针再次搜索,这样每次搜索会减少一半的元素
"""
def binarysearch(array, left, right, value):
    midd_index = int(left + (right - left) / 2)
    if left <= right:
        midd_value = array[midd_index]
        if value == midd_value:
            return midd_value
        elif value < midd_value:
            return binarysearch(array, left, midd_index - 1, value)
        elif value > midd_value:
            return binarysearch(array, midd_index + 1, right, value)
        else:
            return None
    else:
        return None


if __name__ == '__main__':
    sorted_array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    result_value = binarysearch(sorted_array, 0, len(sorted_array) - 1, 3)
    print("查询到的值为:", result_value)

 

posted on 2022-06-26 22:44  Imbadguy  阅读(18)  评论(0)    收藏  举报