一.二分查找的注意事项:
1.要求数组必须排序,例如:升序和降序
2.有些数组的长度为奇数。使用我们可以调用Math中的方法进行取整。
public static void main(String[] args) {
int []arr={20,40,70,100,43,29,34,65};
Arrays.sort(arr);
//如果你想找20在哪里
int min=0;
int max=arr.length-1;
while (true){
int mai=(min+max)/2;
Math.ceil(mai);
if(arr[mai]>20){
max=mai-1;
}else if(arr[mai]<20){
min=mai+1;
}else {
System.out.println(mai);
break;
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
二:调用Arrays里的方法快速找到数字的位置
注意事项:要求数组必须排序,例如:升序和降序。不然就返回的值就是负数。
public static void main(String[] args) {
int []arr={20,40,70,100,60,110,220,550,31};
Arrays.sort(arr);
int binarySearch = Arrays.binarySearch(arr, 31);
System.out.println(binarySearch);
}
希望对你有帮助