首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

只有10%软件工程师能正确实现二分查找算法

2012-12-21 
只有10%程序员能正确实现二分查找算法//Copyright 2009 Nicholas C. Zakas. All rights reserved.//MIT-Li

只有10%程序员能正确实现二分查找算法
//Copyright 2009 Nicholas C. Zakas. All rights reserved.
//MIT-Licensed, see source file
function binarySearch(items, value){

    var startIndex  = 0,
        stopIndex   = items.length - 1,
        middle      = Math.floor((stopIndex + startIndex)/2);

    while(items[middle] != value && startIndex < stopIndex){

        //adjust search area(调整查找范围)
        if (value < items[middle]){
            stopIndex = middle - 1;
        } else if (value > items[middle]){
            startIndex = middle + 1;
        }

        //recalculate middle(重新计算中项索引)
        middle = Math.floor((stopIndex + startIndex)/2);
    }

    //make sure it's the right value(确保返回正确的值)
    return (items[middle] != value) ? -1 : middle;
}

热点排行