以下是用typescript编写的二分查找算法:

function binarySearch(arr: number[], target: number): number {
  let left = 0;
  let right = arr.length - 1;

  while (left <= right) {
    const mid = Math.floor((left + right) / 2);

    if (arr[mid] === target) {
      return mid;
    } else if (arr[mid] < target) {
      left = mid + 1;
    } else {
      right = mid - 1;
    }
  }

  return -1;
}

这个二分查找算法接受一个有序数组和一个目标值,返回目标值在数组中的下标。如果目标值不在数组中,则返回-1。

算法的基本思路是,首先将数组的左右边界设为0和数组的长度减1,然后计算中间位置的下标。如果中间位置的值等于目标值,则返回该下标;如果中间位置的值小于目标值,则将左边界移动到中间位置的右边一位,否则将右边界移动到中间位置的左边一位。不断重复这个过程,直到找到目标值或者左边界大于右边界为止。

用typescript写一个二分查找算法

原文地址: https://www.cveoy.top/t/topic/Mqt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录