用二分查找法實現數組的查找


public class BinarySearch {

    public static void main(String[] args) {
        int a[] = { 1, 3, 6, 8, 9, 10, 12, 18, 20, 34 };
        int i = 12;
        
        System.out.println("您所要查找數  "+i+" 的位置是: "+binarySearch(a,i));

    }
    
    //二分查找
    public static int binarySearch(int a[],int m) {
        if(a.length == 0) return -1;
        int begin = 0;    //起始位置
        int end = a.length - 1;    //末尾位置
        int mid = (begin + end) / 2;    //要查找的中間位置
        
        while(begin <= end) {
            if(a[mid] == m) {    //返回找到的位置
                return mid;
            }else if(a[mid] > m) {    //如果中間位置的值比所要找的值大,那么末尾位置指向中間位置的上一個位置
                end = mid - 1;
            }else{    //如果中間位置的值比所要找的值小,那么起始位置指向中間位置的下一個位置
                begin = mid + 1;
            }
            mid = (begin + end) / 2;
        }
        return -1;
    }

}

運行結果是:

您所要查找數  12 的位置是: 6


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM