折半查找

折半查找:是对有序表的查找

主要代码:

    public static int findNumber(int a[], int key){
        
        int low = 1;
        int high = a.length;
        int mid; 
        
        while(low <= high){
            
            mid = (low + high)/2;
            if(key == a[mid])
                return mid;
            else if(key < a[mid])
                high = mid -1;
            else
                low = mid +1;
        }
        return 0;
    }

 

 

完整代码:

package find;

public class Find {

    
    static int a[] = {0,1,2,3,4,5,6,7,8,9};
    public static void main(String[] args) {
        
        System.out.println(findNumber(a, 5));
    }
    
    public static int findNumber(int a[], int key){
        
        int low = 1;
        int high = a.length;
        int mid; 
        
        while(low <= high){
            
            mid = (low + high)/2;
            if(key == a[mid])
                return mid;
            else if(key < a[mid])
                high = mid -1;
            else
                low = mid +1;
        }
        return 0;
    }
}

 

posted @ 2014-03-17 21:58  mynona  阅读(167)  评论(0编辑  收藏  举报