zoukankan      html  css  js  c++  java
  • 二分查找

    二分查找也称折半查找(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

     
  • 相关阅读:
    Ext.grid.行相关
    FORM 布局
    rs.open sql,conn,1,1全接触
    arguments.callee
    Ext.window.MessageBox xtype: messagebox ; Ext.Msg Ext.MessageBox
    Ext.grid.column
    sql
    正则
    转JS
    quickFilters
  • 原文地址:https://www.cnblogs.com/lzj0824/p/9947123.html
Copyright © 2011-2022 走看看