代码:
package cn.java_Array;
import java.util.Arrays;
import java.util.Scanner;
public class TestDichotomy {
public static void main(String[] args) {
int[] arr = { 30,20,50,10,80,9,7,12,100,40,8};
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要找的元素:");
int searchWord = scanner.nextInt();
Arrays.sort(arr);
System.out.println("排序后的数组为:"+Arrays.toString(arr));
System.out.println(searchWord+"的下标:"+binarySearch(arr,searchWord));
}
public static int binarySearch(int[] array, int value){
int low = 0;
int high = array.length - 1;
while(low <= high){
int middle = (low + high) / 2;
if(value == array[middle]){
return middle;
}
if(value > array[middle]){
low = middle + 1;
}
if(value < array[middle]){
high = middle - 1;
}
}
return -1;
}
}
运行结果:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8dfa2c93a6de4f02830ee62ac4a33fd7.png)