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

二分法查找(java)

2018-02-21 11:47 253 查看
       如果查找某个数组的数我们可以循环遍历,但是这样效率比较低。
      可以用二分法,加快查找的效率。二分法的原理是什么?就是取中间数,不整除取整数。判断查询的数和要找的数是大是小。在进行判断,随着中间数的变化就可以找到,并且如果有正好返回中间数(对应的是坐标),如果没有找到这样就直接返回-1.
       二分法适用于排好序的。来看一下java代码。public static void main(String[] args)
{
int[] test={1,12,22,23,25,56,88,96};
int restult=halfSearch_2(test,0); //这里代表两个参数一个是数组,一个是查找匹配的数

System.out.print(restult);
}

//排好序进行查找
public static int halfSearch(int[] test,int key )
{
int max=test.length;
int min=0;
int mid=(max+min)>>1;

while(key!=test[mid])
{
if(key>test[mid])
{
min=mid+1;
}
else
{
max=mid-1;
}
if(min>max)
{
return -1;
}
mid=(min+max)>>1;//求中间数的方法
}
return mid;
}     这里还有一个java自带的函数   int restult1=Arrays.binarySearch(test,0);
     需要引用 import java.util.*;

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