java實現遞迴版二分查詢演算法
阿新 • • 發佈:2018-12-31
遞迴的特點?
1.玩遞迴主要就是去嘗試解決一下規模更小的問題,採用遞迴將問題收斂到最簡單的情況解決。
2.由1可知,遞迴肯定是有一個最簡單的情況。
3.遞迴呼叫的父問題和準備解決的子問題之間不應該有交集。
遞迴實現二分查詢:
結果:public class BinarySearch2 { public static int rank(int key,int[] arr,int start,int end){ if(start >end){ return -1; } int mid=start+(end-start)/2; if(key<arr[mid]){ return rank(key,arr,start,mid-1); }else if(key>arr[mid]){ return rank(key,arr,mid+1,end); }else{ return mid; } } public static void main(String[] args) { int arr[]={0,1,3,5,6,7,8,8,9}; System.out.println("resultPosition="+rank(3,arr,0,8)); } }
resultPosition=2
解釋:鍵值為3在查詢陣列下標為2的位置。