• 二分查找


    二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

    # 要求:

      1.必须为线性表;

      2.有序;

    代码示例:

    /**
       * 假定数组为升序排列
       * array: 查找范围
       * target: 目标值
       */
      function binarySearch (array, target) {
        if (!array || array.length === 0) {
          return -1
        }
        let left = 0; // 数据左区间边界
        let right = array.length - 1; // 查找右区间边界
        while (left <= right) {
          const middle = Math.floor((right + left) / 2); // 中间位置
          if (array[middle] === target) {
            return middle
          } else if (array[middle] > target) { // 将左区间边界缩小到middle + 1位置
            left = middle + 1;
          } else { // 将右区间边界缩小到 middle - 1位置
            right = middle - 1; 
          }
        }
        return -1 // 未找到匹配值,则返回-1
      }
    

      leetcode问题练习: Search Insert Position

     
  • 相关阅读:
    MVC中使用jquery的浏览器缓存问题
    3 工厂方法模式
    2 简单工厂模式
    1 单例模式
    Sqlserver With as
    Memcache的使用
    mysql的分区和分表
    MySQL主从复制与读写分离
    SqlServer 表分区
    SqlServer 2012 AlwaysOn
  • 原文地址:https://www.cnblogs.com/lzj0824/p/9947123.html
Copyright © 2020-2023  润新知