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

二分查找法 Java实现

2021-11-28 20:53 134 查看
/***
* 二分查找法
* 1、首先需要一个排序好的数组
* 2、设置一个左边界L=0 , 设置一个右边界R=length-1;
* 3、循环(l<=r)
*   设置一个中间值M = l+r >>> 2  //位运算 相当于 (l+r)/2
* 4、判断m下标的值
* 4.1、如果下标值 等于 需要查的值返回下标
* 4.2、如果下标值 大于 需要查找的值 那就 r=m-1;
* 4.3、如果下标值 小于 需要查找的值 那就 l=m+1;
* @param arr 需要查找的数组
* @param tag  查找的值
* @return  返回下标
*/
public static int binarySearch(int[] arr,int tag){
int l=0,r=arr.length-1,m;

while(l<=r){
m = (l+r)/2;
System.out.println(m);
if(arr[m] == tag){
return m;
}else if(arr[m] > tag){
r = m - 1;
}else{
l= m + 1;
}
}

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