1. 程式人生 > >java查詢演算法(二)--二分遞迴查詢

java查詢演算法(二)--二分遞迴查詢

二分查詢的前提是陣列必須是已經排好序的,才能對中位數進行比較後選擇在哪邊查詢。

//遞迴查詢(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; }