算法

47 阅读1分钟

二分查找法

  1. 有序数组
    • 保证数组是有序的
  2. 元素不重复 - 这里需要研究一下
  3. int mid = left+(right-left)/2
    • 中位数的正常写法是int mid = (left+right)/2
    • 注意:但在整形中(left+right)这个部分容易整形溢出
    • 把正常写法拆解为int mid = left/2 + right/2 等价于 int mid = left - left/2 + right/2
  4. int mid = left+(right-left+1)/2
    • 有些情况,为保证不出现 left == right的死循环,需要这样写
  5. 二分查找法的2种思路
    • 思路1:在循环体中查找元素
    • 思路2:在循环体里排除一定不存在目标元素的区间