undefined

二分查找

  1. 目标函数单调性(单调递增或者递减)
  2. 存在上下界(bounded)
  3. 能够通过索引访问(index accessible)

代码模版

1
2
3
4
5
6
7
8
9
10
left, right = 0, len(array)-1
while left <= right:
mid = (left + right) / 2; # 处理越界问题 int mid = left + (right-left)/2;
if array[mid] == target:
# find the target
break or return result
elif array[mid] < target:
left = mid + 1;
else:
right = mid - 1;

了解牛顿迭代法