总体思路:
①定义左有边界序号left, right = 0, len函数
根据给出的target的区间是 [ ] 还是 [ ), 当右边界为闭区间时,right = len (list) - 1;
当右边界为开区间时,right = len (list) 。
②定义一个while循环,判断条件为左边界是否小于右边界
while left <= right :
当右边界为闭区间时,为<= ;
当右边界为开区间时,为< 。
③定义middle = left +(right - left) // 2
和(left + right)// 2结果是一样的,但是后者可能会内存溢出
④while循环的执行步骤为定义一个if条件分支
分为三种情况讨论:
if target > nums[middle]:
left = middle
target小于middle时:
right = middle - 1 (闭区间)
right = middle (开区间)
target等于middle时:
return middle;