Java 實現二分查找\折半查找

p34f 9年前發布 | 2K 次閱讀 Java

    二分查找又稱折半查找,優點是比較次數少,查找速度快;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查找方法適用于不經常變動而查找頻繁的有序列表。

        該算法要求:

        1、  必須采用順序存儲結構。

        2、  必須按關鍵字大小有序排列。

        該算法時間復雜度最壞為:O(logn)

         注意點有mid、low、high

 

        其Java實現代碼如下:

public class BinarySearch {

    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generatedmethod stub

       int[] src = {1,3,5,7,8,9};

       System.out.println(binarySearch(src,3));

    }



    private static int binarySearch(int[] src, int i) {

       int low=0;

       int high=src.length-1;

       System.out.println("low is"+low);

       System.out.println("high is"+high);

       while(low<=high){

           int mid = (low+high)/2;

           System.out.println("mid is"+mid);

           if(src[mid]==i){

              return mid;

           }else if(i<src[mid]){

              high=mid-1;

           }else{

              low=mid+1;

           }

       }

       return -1;

    }

}

 本文由用戶 p34f 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!