码迷,mamicode.com
首页 > 编程语言 > 详细

javascript二分查找

时间:2017-09-05 22:04:44      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:问题:   bsp   存在   返回值   sea   fun   ret   func   下标   

/*
二分查找(折半查找)
思路:
low和high表示下标,选择每个数组的中点作为基准,比较基准与key的值,
若大于基准,则移动low,反之移动high,等于则返回该值,不存在返回-1
遇到的问题:写成了死循环,无返回值

*/
var arr = [1,4,5,7,3,9,8];
var ff = binarySearch(arr,4);

console.log(ff);

function binarySearch(arr,key) {
    var low = 0;
    var high = arr.length-1;
    
    while(low<=high){
        var mid =Math.floor( (high+low)/2);
        if(arr[mid]==key){
        return arr[mid];
    }
        if (key<arr[mid]) {
            high = mid;
        }else if(key>arr[mid]){
            low = mid;
        }else{
            return mid;
        }
    }
    
     return -1;
    
}

 

javascript二分查找

标签:问题:   bsp   存在   返回值   sea   fun   ret   func   下标   

原文地址:http://www.cnblogs.com/html-css-js/p/7481946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!