二分查找数组中对应值的下标(Java)
package com.lxf.demo03;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BinSearch {
public static void main(String[] args) throws IOException {
int[] a=new int[]{1,2,3,4,5,6,7,8,9,10};
System.out.println("请输入您要查找的值:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int num = Integer.valueOf(br.readLine());
int i = BinSearch(a, 0, a.length - 1, num);
if(i>=0){
System.out.println(num+"值在数组中对应的下标:"+i);
}else{
System.out.println("该数不存在!");
}
}
public static int BinSearch(int[] a,int low,int high,int k){
int mid;
if(low<=high){
mid=(low+high)/2;
if(a[mid]==k){
return mid;
}
if(a[mid]>k){
return BinSearch(a, low, mid-1, k);
}else{
return BinSearch(a, mid+1, high,k);
}
}else{
return -1;
}
}
}