二分查找法
2015-06-09 10:06
246 查看
二分查找,顾名思义就是分两份查找XD。采用二分法查找时,数据需是排好序的,这是使用二分查清找的前提。
该算法的基本实现思路是:
1.先将数据排序
2.确定中间位置mid=(first+last)/2;
3.比较所要查找的关键字 key与中间位置的关键字的大小,如果比key和mid.key相等则返回, key比mid.key大(假定为升序)这所要查找的关键字在mid和last之间;否则在first与mid之间。
4.继续按照上面方法查找中间元素,直到找到为止。
本文出自:http://www.cnblogs.com/zzsakurazz/ 转载随意,请注明出处
该算法的基本实现思路是:
1.先将数据排序
2.确定中间位置mid=(first+last)/2;
3.比较所要查找的关键字 key与中间位置的关键字的大小,如果比key和mid.key相等则返回, key比mid.key大(假定为升序)这所要查找的关键字在mid和last之间;否则在first与mid之间。
4.继续按照上面方法查找中间元素,直到找到为止。
1 import java.util.Arrays; 2 public class ArraysDome_1 { 3 public static void main(String[] args) { 4 int array[]={2,31,434,11,323,44,10}; 5 Arrays.sort(array); 6 System.out.println(Arrays.toString(array)); //输出排序后的数列 7 System.out.println("查找结果:"+see(array,11)); //调用查找方法并输出结果 8 } 9 private static int see(int[] arr, int i) { 10 int mid=(arr.length-1)/2; //先求的mid 11 while (mid<arr.length&&mid>=0) { //循环条件:mid查找范围不能超过数组范围 12 if (arr[mid]>i) { //如果当前指向的数据大于关键字就向后走,反之就向前走,直到找到并返回mid 13 mid--; 14 }else if (arr[mid]<i) { 15 mid++; 16 }else if (arr[mid]==i) { 17 return mid; 18 } 19 } 20 return -1; //如果没有就返回-1 21 } 22 23 }
本文出自:http://www.cnblogs.com/zzsakurazz/ 转载随意,请注明出处
相关文章推荐
- java中的关键字static(静态变量)和final定义常量
- 面向对象三大基本特性,五大基本原则
- [Android Studio 权威教程]AS添加第三方库的6种方式(Jar,module,so等)
- group by 的用法
- jQuery 自带的动画效果
- Android手机保持屏幕高亮方法
- jsp 的四个作用域 :page、request、session和application的区别
- 冬吴相对论 以美启真
- 上班的第五百零二天
- HTML th或td之间如何消除空隙?
- Animation Must be marked as legacy
- Android常用代码段
- 数组去重
- Oracle中shared pool调优
- 【Android】获取Mac地址
- linux下网卡网络流量监控工具
- 泛函编程(29)-泛函实用结构:Trampoline-不再怕StackOverflow
- MyEclipse默认编码为GBK,修改为UTF8的方法
- 【年中福利又一波】爱加密邀你体验安全之旅 各种豪礼任性送
- IOS9 Swift