二分法

  二分法的画图解析:

 

  二分法的原理:用传统的方法 要找到一个数字,需要for循环一个一个遍历,这种写法,如果在1000个数字中,找一个数组,需要遍历1000次,非常的消耗资源

  所以提出了另一种方法 二分法,先对数组进行排序,找出中间的数,和查找的数进行对比;

  二分法作用:常用于数据查找的方法;   前端的数组搜索;

  案例: 

  var arr=[2,26,36,45,67,89,12,46,53,42];
    //二分查找的前提,一定要从小到大排序;
    arr.sort(function(a,b){
      return a-b;
    })
    //最小的数的索引 , 最大的书的索引;
    var startindex=0;endindex=arr.length;
    var findnum=prompt();
    var middleindex=Math.floor((startindex+endindex)/2);
    while(startindex!==middleindex&&endindex!==middleindex){
      console.log(1);
      if(arr[middleindex]>findnum){
        endindex=middleindex;
      }
      else if(arr[middleindex]<findnum){
        startindex=middleindex;
      }
      else if(arr[middleindex]==findnum){
        break;    //这里很重要,不然的话会一直遍历下去,因为是while循环 ,不加的话,很可能死机
      }
      middleindex=Math.floor((startindex+endindex)/2);
    }
  if(arr[middleindex]==findnum){
    document.write("找到了");
  }
  else{
    document.write("没找到");
  }

原文地址:https://www.cnblogs.com/shangjun6/p/10731647.html