# -*- 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)
浙公网安备 33010602011771号