# -*- 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)