zoukankan      html  css  js  c++  java
  • JS算法之二分查找

    二分查找法主要是解决「在一堆有序的数中找出指定的数」这类问题,不管这些数是一维数组还是 多维数组,只要有序,就可以用二分查找来优化。

    二分查找是一种「分治」思想的算法,大概流程如下: 1.数组中排在中间的数字 A,与要找的数字比较大小 2.因为数组是有序的,所以: a) A 较大则说明要查找的数字应该从前半部分查找 b) A 较小 则说明应该从查找数字的后半部分查找 3.这样不断查找缩小数量级(扔掉一半数据),直到找完数组为止 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的 顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    function Find(target, array) {
     let i = 0;
     let j = array[i].length - 1;
     while (i < array.length && j >= 0) {
     if (array[i][j] < target) {
     i++;
    81
     } else if (array[i][j] > target) {
     j--;
     } else {
     return true;
     }
     }
     return false;
    }
    //测试⽤例
    console.log(Find(10, [
     [1, 2, 3, 4],
     [5, 9, 10, 11],
     [13, 20, 21, 23]
     ])
    ); 
  • 相关阅读:
    centos 7离线安装中文版GitLab
    Oracle表名、列名、约束名的长度限制
    使用sparsecheckout命令克隆“部分”代码
    C专家编程(1)
    搜索相关性
    今日进度
    今日进度
    今日进度
    今日进度
    今日进度
  • 原文地址:https://www.cnblogs.com/zt123123/p/10174935.html
Copyright © 2011-2022 走看看