import java.util.Arrays;
public class FindingTwo {
public static void main(String[] args) {
//二分查找
int[] number = new int[]{1, 2, 32, 12,16,19,24,67,46};
Arrays.sort(number);
System.out.println(Arrays.toString(number));
System.out.println(binarySearch(number,13));
}
public static int binarySearch(int[] number, int data) {//升序版
int left = 0;
int right = number.length - 1;
int middle = 0;
while (left <= right) {
middle = (left + right) / 2;
if (number[middle] < data) {
left = middle + 1;
} else if (number[middle] > data) {
right = middle - 1;
}else{
//这里就是找到的情况
return middle;
}
}
//没找到的话返回middle+1
return -(left+1);//返回的是想要找的数字在数组索引位置的负数减一
}
}
二分查找(Java)
最新推荐文章于 2025-03-21 11:54:27 发布