// 二分法查找(数组必须是有序数组)
public static int getIndex(int[] arr, int value) {
// 如果数组为null或者长度为0返回-1表示没有找到
if (arr == null || arr.length == 0) {
return -1;
}
// 定义最大索引,最小索引
int max = arr.length - 1;
int min = 0;
// 计算出中间索引
int mid = (max + min) / 2;
// 拿中间索引的值和要查找的值进行比较
while (arr[mid] != value) {
if (arr[mid] > value) {
max = mid - 1;
} else if (arr[min] < value) {
min = mid + 1;
}
// 当最小索引大于了最大索引,表示查找的值不存在,返回-1
if (min > max) {
return -1;
}
mid = (max + min) / 2;
}
return mid;
}
数组二分法查找代码
最新推荐文章于 2024-01-18 08:00:00 发布