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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统