Scanner sc= new Scanner(System.in); System.out.println("请输入数字个数"); int a=sc.nextInt(); //接收输入的数字 定义为a int arr[]=new int [a];//开辟一个空间储存数组 for(int i=0;i<arr.length;i++) //输入数组内的数 { System.out.println("请输入第"+(i+1)+"个数"); arr[i]=sc.nextInt(); } for(int b=0;b<arr.length-1;b++) { for(int c=b+1;c<arr.length;c++) { if(arr[b]<arr[c]) { int d=arr[b]; arr[b]=arr[c]; arr[c]= d; } } } for(int t : arr) { System.out.print(t+" "); } System.out.println("请输入需要查找的数字"); int f=sc.nextInt(); int mid; int max=arr.length-1; int min=0; for(;max>=min;) { mid=(max+min)/2;//求中间下标 if(arr[mid]==f) { System.out.print("恭喜找到数字"+f+" 是第"+(mid+1)+"个数"); break; } else { if (arr[mid]>f) { min=mid+1; } else { max=mid-1; } } }