javascript--面试--算法-数组2

题目描述

假设有一个已经排好序的整型数组,要求实现一个使用二分查找的函数,判断某个数字是否出现在该数组中。

考察二分法,使用迭代查找,注意不要使用Math.ceil,会造成最后一次查找陷入死循环;

function in_array(arr, value){
    if(!arr.length) return false;
    if(arr.length == 1) {
        if(arr[0] == value) {
            return true;
        } else {
            return false;
        }
    }
    var middle = Math.floor(arr.length /2);
    if(arr[middle] == value) {
        return true;
    } else if(arr[middle] > value) {
        return in_array(arr.slice(0, middle), num);
    } else {
        return in_array(arr.slice(middle+1), num);
    }
}
var arr = [1, 2, 3, 4, 5, 6, 7];
var num = 0;
console.log(in_array(arr, num));

 

posted on 2016-03-31 10:19  可乐不加冰Litb  阅读(123)  评论(0)    收藏  举报