Java二分法在已排序数组中查找指定数

时间:2021-12-10 01:05:02

public static int binarySearch(int[] sortedArr , int target){

int start = 0;
int end = sortedArr.length - 1;


do{
int mid = (start + end)/2;

if(target > sortedArr[mid]){
start = mid+1;
}else if (target < sortedArr[mid]){
end = mid - 1;
}else{
return mid;
}
}while(start != end);

// 未找到
return -1;
}


此方法适用于已排好序的查找,未排序的话需要先排序再调用此方法。二分法对于已排序的数组效率较高,而对于未排序的数组因为需要先排序,效率可能比其他的方法稍低(加上排序的时间复杂度)。