注意:由于二分法只适用于有序数组的元素查找,对于无序数组,我们必须先对其进行排序。
数组可由Math.random()方法结合循环自动生成一个固定长度的int数组,然后调用Arrays.sort()方法对其排序,然后得到我们想要的有序int数组
第一种方法:不使用递归
import java.util.Arrays;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
int []arr=new int [30];
//循环往数组内转入数据
for(int i=0;i<arr.length;i++) {
arr[i]=(int)(Math.random()*100+1);
}
Arrays.sort(arr);//数组从小到大排序
System.out.println(Arrays.toString(arr));
Scanner sc=new Scanner(System.in);
System.out.println("输入要查找的数:");
int item=sc.nextInt();
/*
* 调用二分查找方法
*/
int index=binarySearch(arr,item);
if(index!=-1){
System.out.println("我要查找元素对应的索引是:"+index);
}else{
System.out.println("没有找到对应的元素!");
}
}
/**
*
* @param arr 目