javascript二分查找
阿新 • • 發佈:2017-09-05
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二分查找