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

Java binarySearch 学习

2015-07-18 13:35 609 查看
初学的JAVA,搜索数组中的元素,遇到binarySearch()。就照着例子测试了一下。


- 代码片:
import java.util.Arrays;

import java.util.Comparator;

class Search{

public static void main(String[] args){

int A [] = {98, 11 , 12, 15,100 ,25 ,66, 78, 94 };

int b=Arrays.binarySearch(A,25);

//二分法查找,需要先排序,如果没有先排序,得到的结果是不确定的

System.out.println("location 25: "+ b);

Arrays.sort(A);//sort排序,升序排列

System.out.print("After sorted:  ");

for(int i=0; i<A.length;i++){

System.out.print(+A[i] + "  ");

}

System.out.println();

int Newlocation = Arrays.binarySearch(A,25);

System.out.println("25Newlocation : "+ Newlocation + ", A["+ Newlocation +"]=" + A[Newlocation]);

}

}


- 得到以下结果:



从结果图上可以看出:在没有排序之前得到的,结果是负值,说明搜索结果是不确定的。当排序之后得到的结果就正确了。

这主要是二分法搜索需要先排序,然后才能正确搜索。在binary Search中,有yaoguicheng在其博客http://blog.csdn.net/yaoguicheng/article/details/5273776具体提到了使用binarySearch()的方法。简而言之:使用该方法的语法格式如下:int i = binarySearch( Source array, Target value);

如上例:int b=binarySearch(A ,25),在A数组中找到元素25。注意是在排序之后,才能确定找到。

引用 : yaoguicheng博文:

http://blog.csdn.net/yaoguicheng/article/details/5273776

待续:以后比较一下其和list.contains()的区别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JAVA binary+ search