首页 > 代码库 > Java之二分法
Java之二分法
-
废话不多说,先来程序.一步一步看注释,
-
首先要注意:使用二分法时,数组必须是有序的,也就是从大到小或者从小到大的,不能是无序的
1 public static int halfSearch(int[] arr,int key){ 2 int min,max,mid;//分别为最小值,最大值,和中间值 3 min = 0; 4 max = arr.length - 1; 5 mid = (max + min)/2;//这应该就是二分的核心了, 6 //当key = arr[mid]说明已经找到了这个数据,所以while循环的条件是!= 7 while(arr[mid] != key){ 8 if(key > arr[mid]){ 9 min = mid + 1; 10 }else if(key < arr[mid]){ 11 max = mid - 1; 12 } 13 //返回-1表示没有找到 14 if(max < min){ 15 return -1; 16 } 17 mid = (max + min)/2; 18 } 19 //返回值为对应key值得下标 20 return mid; 21 }
Java之二分法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。