您的位置:首页 > 编程语言 > Java开发

二分查找

2016-08-11 21:31 141 查看
很简单也很实用的一个算法,详解在注释中

前提:数组中的元素要有序

public static int halfSerach_2(int []arr,int key){
int min,max,mid;
min = 0; //定义最小下标
max = arr.length - 1; //最大下标
mid = (min+max) >> 1; //中间下标 (mix+max)/2
while(arr[mid] != key){ //当数组中间那个数不等于所要的key
if(key > arr[mid]){
min = mid + 1; //如果key是大于中间的数,则最小下标移到mid+1
}else if(key < arr[mid]){
max = mid - 1; //如果key是小于中间的那个数,则最大下标移到mid-1
}
mid = (min+max) >> 1; //mid值为移动后的最小下标和最大下标的一半.
}

return mid;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  二分查找 java