二分法查找(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.*;
可以用二分法,加快查找的效率。二分法的原理是什么?就是取中间数,不整除取整数。判断查询的数和要找的数是大是小。在进行判断,随着中间数的变化就可以找到,并且如果有正好返回中间数(对应的是坐标),如果没有找到这样就直接返回-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.*;
相关文章推荐
- JAVA 二分法查找
- 二分法查找 JAVA实现
- Java二分法在已排序数组中查找指定数
- java -二分法查找
- Java实现简单的二分法查找int数组中的某值
- java 12:数组的搜索——线性查找及二分法查找
- java日常学习:直接查找法和二分法(折半法)查找数组元素
- Java二分法查找实现
- java二分法查找演示
- I学霸官方免费教程二十九:Java查找算法之二分法查找
- 二分法查找(Java)
- 12.java语言基础-查找算法-二分法查找
- 算法--二分法查找Java代码
- 二分法查找-Java
- Java查找算法之二分法查找
- java通过二分法对数组进行高效查找及插入操作
- 输入一个数组,用二分法查找Java实现
- java 二分法查找某一元素
- Java二分法查找_动力节点Java学院整理
- Java查找算法(一): 二分法查找