MR-LI_20200831-李伟江
问题
二分查找
非递归进行二分查找
public int binarysearch( int[] array , int target) {
int low = 0;
int high = array.length - 1;
while( low <= high ) {
int mid = low + ( high - low ) / 2 ;
if( array[ mid ] > target ) {
high = mid - 1; //左边搜索区间不包含mid
}else if( array[ mid ] < target ) {
low = mid + 1 ; //右边的搜索区间不包含mid
}else {
return mid;
}
}
return -1;
}
递归进行二分查找
public int binarysearch( int[] array , int target) {
int low = 0 ;
int high = array.lenth - 1 ;
if( low > high ) {
return -1;
}
int mid = low + ( high - low ) / 2;
if( array[ mid ] > target ) {
return binarysearch( array , low , high - 1 , target);
}
if( array[ mid ] < target ) {
return binarysearch( array , low + 1 , high , target);
}
return mid;
}
吐槽
生活从来都没有假期
近期评论