二分查找递归解法
package LanQiao;
public class Demo06
{
public static void main(String[] args)
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int key = 2;
int low = 0;
int high = arr.length - 1;
int index = binarySearch(arr, low, high, key);
if(index==-1){
System.out.println("不含有该元素 "+key);
}else{
System.out.println("含有该元素 "+key+",下标是:"+index);
}
}
public static 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, mid-1, key);
else if (midVal==key)
System.out.println("找到了该数字"+key);
return mid;
}
}
运行结果