1. 程式人生 > >javascript順序數組簡單實現個二分查找

javascript順序數組簡單實現個二分查找

nbsp 大於 mat 返回 col sea 詳細 == 二分

直接上碼了註釋寫得很詳細:

  function bsearch(A,x){
        //l:查找範圍左 r:查找範圍右
        let l = 0, //查詢範圍左邊界
            r = A.length-1, //查找範圍右邊界
            guess //中間猜測位置
        while(l <= r){
            //guess等於l,r中間位置
            guess = Math.floor( (l+r)/2 )       

            //判斷當前位置是否為要查找的值,是則返回下標
            if
(A[guess] === x) return guess //如果當前位置值大於要查詢的值 右邊界位置減一 else if(A[guess] > x) r = guess -1 //否則左邊界位置加1 else l = guess + 1 } //找不到返回-1 return -1 } const a = [3,5,4,7,12,42,47,66,71,78]; console.log(bsearch(a,12))//4 console.log(bsearch(a,4))//
-1 console.log(bsearch(a,66))//7 console.log(bsearch(a,5))//1

javascript順序數組簡單實現個二分查找