Java 二分查找:4 步记忆口诀

55 阅读1分钟

以下是Java实现二分查找的代码,添加了便于快速记忆的注释和口诀:

代码实现(带注释)

public class BinarySearch {
    // 二分查找:在有序数组中查找目标值
    public int search(int[] nums, int target) {
        int left = 0;           // 左边界
        int right = nums.length - 1;  // 右边界(闭区间)
        
        while (left <= right) {  // 注意是 <=
            int mid = left + (right - left) / 2;  // 计算中间索引,防止溢出
            
            if (nums[mid] == target) {
                return mid;     // 找到目标值,返回索引
            } else if (nums[mid] < target) {
                left = mid + 1; // 目标在右半部分,更新左边界
            } else {
                right = mid - 1; // 目标在左半部分,更新右边界
            }
        }
        
        return -1;  // 未找到目标值
    }
}

记忆口诀

二分查找三步走,左右边界中间走
中间值比目标小,左边界就往右跳
中间值比目标大,右边界就往左靠
相等返回中间值,循环结束找不到

关键点记忆

  1. 前提条件:数组必须有序
  2. 循环条件left <= right(闭区间)
  3. 中间值计算mid = left + (right-left)/2(防止整数溢出)
  4. 边界更新
    • 目标在右半部分:left = mid + 1
    • 目标在左半部分:right = mid - 1