Java面向对象_常用类库api——二分查找算法

概念:又称为折半查找,优点是比较次数少,查找速度快,平均性能好;缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。

例:

 1 public class BinarySearchDemo {
 2 
 3     /**
 4      * @param args
 5      */
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         int[] nums={20,34,30,45,54,60};
 9         Arrays.sort(nums);
10         for(int i:nums){
11             System.out.println(i);
12         }
13         System.out.println(binarySearch(nums,60));
14     }
15     //二分查找算法
16     //特点:查找速度快。要求:数列必须有序
17     public static int binarySearch(int[] nums,int key){
18         int start=0;
19         int end=nums.length-1;
20         int mid=-1;
21         while(start<=end){
22             mid=(start+end)/2;
23             if(nums[mid]==key){
24                 return mid;
25             }else if(nums[mid]<key){
26                 start=mid+1;
27             }else if(nums[mid]>key){
28                 end=mid-1;
29             }
30         }
31         return -1;
32     }
33 
34 }

 

posted on 2015-12-29 17:05  深海溺心  阅读(1369)  评论(0编辑  收藏  举报

导航