二分查找为什么容易写错

二分查找为什么容易写错

二分查找看似简单,实际写起来却很容易出错。本文讲它的常见变体和注意事项。

先写清楚输入和输出

算法题最怕脑子里觉得懂,代码一写就错。先把输入、输出、边界条件列出来。

以二分查找为例:

public int binarySearch(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target) return mid;
if (nums[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}

验证边界

至少测试:空数组、只有一个元素、目标在开头、目标在结尾、目标不存在。


   转载规则


《二分查找为什么容易写错》 小乐 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录