java查詢演算法(二)--二分遞迴查詢
阿新 • • 發佈:2019-01-06
二分查詢的前提是陣列必須是已經排好序的,才能對中位數進行比較後選擇在哪邊查詢。
//遞迴查詢(recursion):
// 二分查詢的前提是陣列必須是已經排好序的,才能對中位數進行比較後選擇在哪邊查詢
public static int binarySearch_Recursion (int []a , int left, int right, int d){ //left,right均為下標, d 為數值
if( left== right&& d== a[ left]){
return left +1;
}
if ( left< right){
int mid =(left +right )/2;
if( d== a[ mid]){ // 中位數是需要查詢的值,則返回其位置,否則遞迴在左或者右分割槽查詢
return mid +1;
} else if (d <a [mid ]){
return binarySearch_Recursion( a, left, mid-1, d);
} else {
return binarySearch_Recursion( a, mid+1, right, d);
}
}
return -1;
}