二分查找——一维数组
let arr=[1,2,3,4,5,6,7,8,9];
function find(arr,target) {
let left=0;
let right=arr.length-1;
while(left<=right){
let mid=Math.floor((left+right) / 2);
if(arr[mid]===target){
return true;
}else if(arr[mid]>target){
right=mid-1;
}else{
left=mid+1;
}
}
return false;
}
console.log(find(arr,7))
二分查找——二维数组
let arr=[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]];
function find(arr,target) {
let left=0;
let bottom=arr.length-1;
while(left<arr[0].length && bottom>0){
if(arr[bottom][left]===target){
return true;
}else if(arr[bottom][left]>target){
bottom--;
}else{
left++;
}
}
return false;
}
console.log(find(arr,15))