public class QueryDemo { public static void main(String[] args) { int[] arr2 = new int[] { 11, 3,32,34, 45, 56, 78 }; System.out.println("67在数组中的位置:" + halfSearch(arr2, 11)); } public static int halfSearch(int[] arr, int value) { // 定义3个变量 min, mid, max int min = 0; int max = arr.length - 1; int mid = (min + max) / 2; while (value != arr[mid]) { // 判断 if (value > arr[mid]) { // 在右侧 min = mid + 1; } else { // 在左边 max = mid - 1; } // 更新 mid mid = (min + max) / 2; // 当最小角标 大于 最大角标时, 证明 数据没有查询到 if (min > max) { mid = -1; break; } } return mid; } }
时间: 2024-10-09 23:42:39