1.二分查找首先被查找的序列是一个有序的。
2.明确序列的左右边界
3.找出序列中间的元素,判断如果是要查找的元素,返回元素
4.如果中间元素,大于或者小于查找的元素,那么改变左右边间,直到中间的数等于查找的元素。
def Two_selecter(find_num,nums):#划定左右边界下标left,right = 0,len(nums)-1while left <= right:#计算出折半值的下标pivot = left + (right - left) // 2#如果相等,就找到了,返回值if nums[pivot] == find_num:return nums[pivot]#如果小于中间值,中间值的下标退一位,变成右边界if find_num < nums[pivot]:right = pivot - 1#如果中间值小于查找值,中间值+1,变成左边界else:left = pivot + 1return Nonea = [1,2,3,4,5,6,7,8,9,10]
print(Two_selecter(2,a))