二分法

二分法的使用前提

二分法的效率非常高是 log 级别的,但是二分法的使用是有前提条件的:它要求我们的列表整体有序! 该思想也可以用在双指针中,即当我们所操作的数比较复杂时,我们可以使用先排序后二分或者后双指针的思路去进行求解。

二分法的使用场景

搜索

function binnarySearch(arr: number[], num: number) {
  let left = 0;
  let right = arr.length - 1;
  while (left <= right) {
    const mid = left + ((right - left) >> 1);
    if (arr[mid] === num) {
      return mid;
    } else if (arr[mid] < num) {
      left = mid + 1;
    } else {
      right = mid - 1;
    }
  }
  return -1;
}
Last Updated:
Contributors: zhaoyuqiqi