3-1 从二分查找法看如何写出正确的程序
如何写出正确的程序
- 设定“循环不变量”,即我们寻找的数据索引一定在该范围中:[l .. r]。
- 数组中可查找的数据的索引范围为:[0, n-1],前闭后闭。
- 设置循环结束条件:当 l <= r,区间 [l ... r] 依然是有效的,数组中仅包含一个元素
- 设置返回条件:
- arr[mid] == target,返回mid
- arr[mid] > target,target在 [mid+1 ... r]中
- arr[mid] < target,target在 [l ... mid]中
- 设置函数最终的返回值:当l > r,依然没有找到target,那么返回-1