int binarySearch(int[] nums, int target) { int left = 0, right = ...; while(...) { int mid = (right + left) / 2; if (nums[mid] == target) { ... } else if (nums[mid] < target) { left = ... } else if (nums[mid] > target) { right = ... } } return ...; }
二分查找的框架
尽量用else if
计算 mid 时需要技巧防止溢出,建议写成: mid = left + (right - left) / 2
原文:https://www.cnblogs.com/shoan-kwichou/p/14680435.html