码迷,mamicode.com
首页 > 其他好文 > 详细

查找算法

时间:2014-05-13 20:27:07      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   c   

    顺序查找的时间复杂度是O(n),如果数组一开始是有序的,那么用顺序查找的效率是比较低的,因为二分查找等方式能够拥有更低的时间复杂度,但是如果一开始是无序的,那么顺序查找有可能比其他查找更加的快速。

    二分查找主要是应用在有序的数组织中,采取的是一种分治的思想,先在数组中去中值,然后将中值与查询的值进行比较,如果小,就在左边数组中查询,如果大,就在右边数组中查询,这样就缩小了查询的范围,同时在半个数组中还能进一步进行划分,能够加快查询的速度。

bubuko.com,布布扣
    private static int a[] = {1,2,3,4,5,6,7,8};
    //非递归
     public static void binarySort(int low,int high,int c) {
         int mid =( low+high)/2;
         System.out.println("mid is "+mid+" and a[mid] is "+a[mid]);
         if(c==a[mid]){
             System.out.println("find");
         }else if(c<a[mid]){
             high = mid-1;
             if(low<=high)
             binarySort(low,high,c);
         }else if(c>a[mid]){
             low = mid+1;
             if(low<=high)
             binarySort(low,high,c);
         }
     }
     
     //递归
     public static void binarySorts(int low,int high,int c) {
        while(low<=high){
             int mid =( low+high)/2;
             if(c==a[mid]){
                 System.out.println("find");
                 break;
             }else if(c<a[mid]){
                 high = mid-1;
             }else if(c>a[mid]){
                 low = mid+1;
             }
        }
     }
bubuko.com,布布扣

分别采用递归和非递归的方式进行了实现。

查找算法,布布扣,bubuko.com

查找算法

标签:style   blog   class   code   java   c   

原文地址:http://www.cnblogs.com/cjmlovelulu/p/3724309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!