public class BinarySearch {
public static void main(String[] args) {
int[] array = {1, 8, 10, 89, 1000, 1234};
int index = binarySearch(array, 89);
if (index != -1) {
System.out.println("index = " + index);
} else {
System.out.println("没有找到~");
}
}
/**
* 对一个有序数组进行二分查找
* @param array 有序数组
* @param value 查找的值
* @return 查找的值所在的下标,没找到则返回-1
*/
public static int binarySearch(int[] array, int value) {
int left = 0;
int right = array.length - 1;
int mid = 0;
while (left <= right) {
mid = (left + right) / 2;
if (array[mid] > value) {
right = mid - 1;
} else if (array[mid] < value) {
left = mid + 1;
} else {
return mid;
}
}
return -1;
}
}
结果:
index = 3
Process finished with exit code 0