首页 > 代码库 > 二分查找
二分查找
public static void main(String[] args) { int[] arr = { 11, 22, 33, 44, 55, 66, 77 }; // 必须有序 System.out.println(getIndex(arr, 22)); } public static int getIndex(int[] arr, int value) { int min = 0; int max = arr.length - 1; int mid = (min + max) / 2; while (arr[mid] != value) { // 当中间值不等于要找的值,就开始循环查找 if (arr[mid] < value) { // 当中间值小于了要找的值 min = mid + 1; // 最小的索引改变 } else if (arr[mid] > value) { // 当中间值大于了要找的值 max = mid - 1; // 最大的索引改变 } mid = (min + max) / 2;// 无论最大还是最小改变,中间索引都会随之改变 if (min > max) {// 如果最小索引大于了最大索引,就没有查找的可能性了 return -1; // 返回-1 } } return mid; }
二分查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。