第二章 :查詢與排序-------二分查詢的遞迴解法

Curtis_發表於2019-03-06

二分查詢的遞迴解法

全範圍內二分查詢:

    等價於三個子問題:

          左邊找(遞迴)

          中間找

          右邊找(遞迴)

/*遞迴解法*/ 
int binarySearch(int arr[],int low,int high,int key){
	if(low>high) {
		return -1;
	}
	int mid=low+((high-low)>>1);
	int midVal=arr[mid];
	if(midVal<key){
		return binarySearch(arr,mid+1,high,key);
	} 
	else if(midVal>key){
		return binarySearch(arr,low,high-1,key);
	}
	else{
		return mid;  //key found
	}
}

 

相關文章