1. 程式人生 > >javascript二分查找

javascript二分查找

pan 問題: binary arr log var 死循環 urn 二分

/*
二分查找(折半查找)
思路:
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二分查找