public class Test01 {
public static void main(String[] args) {
int[] arr = {1,4,7,9,11,13,17,20,22,33,45,4345,2342323,324233223};
int target = 45;
binSearch(arr,target,0,arr.length-1);
System.out.println(bin(arr, target));
}
//遞歸方法
public static void binSearch(int[] arr,int target,int low,int high){
if(low>high){
System.out.println(-1);
return;
}
int mid = (low+high)/2;
if(arr[mid] == target){
System.out.println(mid);
}else if(arr[mid]<target){
binSearch(arr,target,mid+1,high);
}else{
binSearch(arr,target,low,mid-1);
}
}
//非遞歸方法
public static int bin(int[] arr,int target){
int low = 0;
int high = arr.length-1;
while(low<=high){
int mid = (low+high)/2;
if(arr[mid]==target){
return mid;
}else if(arr[mid]>target){
high = mid-1;
}else{
low = mid+1;
}
}
return -1;
}
}