您的位置:首页 > 其它

二分查找法

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.继续按照上面方法查找中间元素,直到找到为止。

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/ 转载随意,请注明出处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: