二分查找法:
import java.util.Scanner;
//基础语法实现代码
public class ArrayUtil {
public static void main(String[] args) {
int[] arr = {10,23,56,89,100,111,222,235,500,600};
System.out.print("请输入查找目标:");
int shuru = new Scanner(System.in).nextInt();
int mi = search(arr,shuru);
System.out.println(mi == -1?"该元素不存在":"元素下标为:"+mi);
}
public static int search(int[] arra, int dest){ //dest为目标元素
int begin = 0; //开始下标
int end = arra.length-1; //结束下标
int mid = (begin + end) / 2; //中间元素
while(begin <= end){
if(arra[mid] == dest){
return mid;
}else if(begin < dest){
begin = mid + 1;
}else{
end = mid -1;
}
}
return -1; //这里-1可自由定义,主要用于输出结果的判断
}
}
Arrays工具类:
import java.util.Arrays;
import java.util.Scanner;
public class ArraysTest {
public static void main(String[] args) {
int[] arr = {1,4,22,11,2,6,3,10};
//排序
Arrays.sort(arr); //可直接调用Arrays.sort();进行排序
//遍历输出
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
//二分法查找
System.out.println("输入查找元素:");
int input = new Scanner(System.in).nextInt();
int index = Arrays.binarySearch(arr,input); //可直接调用Arrays.binarySearch();进行查找
System.out.println(index == -1?"该元素不存在":"该元素下标为:" +index );
}
}



