二分查找的一个小案例
//使用二分查找的前提:
// 一定要求数组中的数值排列时按数值大小来排列的
public class BinarySearch {
public static void main(String[] args) {
//创建一个数组
int[] arr={1,2,3,4,5,6,7,8,9,10};
Scanner sc=new Scanner(System.in);
System.out.println("请输入您所要查找的数值");//输入您所要查找的值
int num=sc.nextInt();//接受输入的值
System.out.println("您所要查找的值在数组中的索引在"+method(arr, num));//调用method方法
}
private static int method(int[] arr, int num) {
int min=0;//获得数组索引的最小值
int max=arr.length-1;//获得数组索引的最大值
while(min<=max){//当min<=max时,执行此循环;
int mid=min+max>>1;//获取数组的中间索引
if (num<arr[mid]){//当需查找的值小于中值索引时,令max=mid-1,继续while循环,直到min>max或num=arr[mid]
max=mid-1;
}else if (num>arr[mid]){//当需查找的值大于中值索引时,令min=mid+1,继续while循环,直到min>max或num=arr[mid]
min=mid+1;
}else{
return mid;//相等时,返回索引值,继续while循环,直到min>max或num=arr[mid]
}
}
return -1;//当min>max时,代表数组中没有您所要查询的值
}
}