二分法分页 mysql_二分法 - Web引领者 - 博客园

二分法的画图解析:

b15420e057a058fd37c242c77f7fef6e.png

二分法的原理:用传统的方法 要找到一个数字,需要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]

startindex=middleindex;

}

else if(arr[middleindex]==findnum){

break;    //这里很重要,不然的话会一直遍历下去,因为是while循环 ,不加的话,很可能死机

}

middleindex=Math.floor((startindex+endindex)/2);

}

if(arr[middleindex]==findnum){

document.write("找到了");

}

else{

document.write("没找到");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值