美文网首页
二分查找(binary search)的四种实现方式

二分查找(binary search)的四种实现方式

作者: 关辰晓 | 来源:发表于2020-05-10 11:08 被阅读0次

以下为javascript实现二分查找(binary search)的四种实现方式,其中第一种为递归写法,其他三种为迭代写法。

递归写法(recursive approach)

const binarySearchRecursive = (nums, left, right, target) {
  if (right <= left) {
    return -1;
  }
  
  const mid = left + Math.floor((right - left) / 2);
  if (nums[mid] > target) {
    return binarySearchRecursive(nums, left, mid - 1, target);
  } else if (nums[mid] < target) {
    return binarySearchRecursive(nums, mid + 1, right, target);
  }
  return mid;
};

迭代写法1:left <= right

const binarySearchIterative1 = (nums, target) => {
  let left = 0, right = nums.length - 1;
  while (left <= right) {
    const mid = left + Math.floor((right - left) / 2);
    if (nums[mid] === target) {
      return mid;
    }
    if (nums[mid] > target) {
      right = mid - 1;
    } else {
      left = mid + 1;
    }
  }
  return -1;
};

迭代写法2: left < right

const binarySearchIterative2 = (nums, target) => {
  let left = 0, right = nums.length;
  while (left < right) {
    const mid = left + Math.floor((right - left) / 2);
    if (nums[mid] === target) {
      return mid;
    }
    if (nums[mid] > target) {
      right = mid;
    } else {
      left = mid + 1;
    }
  }
  return -1;
};

相关文章

  • 二分查找(binary search)的四种实现方式

    以下为javascript实现二分查找(binary search)的四种实现方式,其中第一种为递归写法,其他三种...

  • 分治算法(swift二分法排序递归实现)

    二分查找 1、二分查找(Binary Search) 2、二分查找的基本思想 swift算法实现

  • 数据结构--二分查找法

    二分查找法 (Binary Search) 二分查找也称折半查找(Binary Search),它是一种效率较高的...

  • 二分查找(binary search)

    二分查找(binary search)

  • 二分查找

    定义 过程 要求 算法复杂度 Java代码实现 定义   二分查找也称折半查找(Binary Search),它是...

  • 查找

    线性查找方式顺序查找 Sequential Search折半查找 Binary Search索引查找 Indexi...

  • 数据结构和算法--二分查找

    二分查找 二分查找的思想 二分查找(Binary Search)算法,也叫折半查找算法。 二分查找针对的是一个有序...

  • 二分查找

    什么是二分查找?二分查找,也叫折半查找(Binary Search),它是一种效率较高的查找方法。二分查找的条件:...

  • 数据结构比较(树)

    查找方法:静态查找:1、顺序查找 : O(N)2、二分查找(Binary Search):O(logN)前提:有序...

  • 二分查找算法

    @(算法集) 二分查找算法 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,...

网友评论

      本文标题:二分查找(binary search)的四种实现方式

      本文链接:https://www.haomeiwen.com/subject/hhwdnhtx.html