public static int getIndex(int[] arr, int value) {
// 定义最大索引
int maxIndex = arr.length - 1;
// 定义最小索引
int minIndex = 0;
// 定义中间索引
int midIndex = (maxIndex + minIndex) / 2;
while (arr[midIndex] != value) {
if (arr[midIndex] > value) {
maxIndex = midIndex - 1;
} else if (arr[midIndex] < value) {
minIndex = midIndex + 1;
}
// 如果数据不存在。
if (minIndex > maxIndex) {
return -1;
}
// 下一次二分查找开始
midIndex = (maxIndex + minIndex) / 2;
}
return midIndex;
}
|
|