您的位置:首页 > Web前端 > JavaScript

js基本语法--查找(二分查找)

2016-04-21 20:25 585 查看




思路:

找到数组的中间数midVal,和你要查找的数(findVal)进行比较,如果midVal > findVal,说明要查找的数(findVal)在数组的左边,就把该数组二分(即只在左边查找)反之,如果midVal < findVal,说明要查找的数在右边。

代码:

<script>
var arr=[1,4,6,8,9,90,800];
function binarySearch(arr,findVal,leftIndex,rightIndex){

//防止无穷递归
if (leftIndex>rightIndex){
//提示找不到
document.writeln('找不到');
return;
}
//找到中间这个值
var midIndex=Math.floor((leftIndex+rightIndex)/2);
//floor() 方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数。
var midVal=arr[midIndex];

//比较
if (midVal>findVal){
//在左边找
binarySearch(arr,findVal,leftIndex,midIndex-1);
}else if(midVal<findVal){
//在右边找
binarySearch(arr,findVal,midIndex+1,rightIndex);
}else{
document.writeln('找到 下标为'+midIndex);
}

}
//测试
binarySearch(arr,4,0,arr.length-1);

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: