二分法的画图解析:
二分法的原理:用传统的方法 要找到一个数字,需要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("没找到");
}