91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java二分查找的原理如何實現

發布時間:2022-06-01 16:26:10 來源:億速云 閱讀:167 作者:iii 欄目:大數據

這篇文章主要介紹“java二分查找的原理如何實現”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“java二分查找的原理如何實現”文章能幫助大家解決問題。

1.二分查找步驟描述

(1)首先確定整個查找區間的中間位置 mid = ( left + right )/ 2

(2)用待查關鍵字值與中間位置的關鍵字值進行比較;

若相等,則查找成功

若大于,則在后(右)半個區域繼續進行折半查找

若小于,則在前(左)半個區域繼續進行折半查找

(3)對確定的縮小區域再按折半公式,重復上述步驟。

最后,得到結果:要么查找成功, 要么查找失敗。折半查找的存儲結構采用一維數組存放。 折半查找算法舉例

java二分查找的原理如何實現2.要求

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

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

3.實例

public class Demo {
 
    public static void main(String[] args) {
        int[] arr={-1,0,3,5,9,12};//查找的數組
        int searchNum=13;//查找的目標數
        Arrays.sort(arr);
 
        int resultOne=binarySearchOne(arr,searchNum,0,arr.length-1);
        System.out.println(resultOne);
 
        int resultTwo=binarySearchTwo(arr,searchNum);
        System.out.println(resultTwo);
    }
 
    /**
     * 遞歸實現
     * @param arr
     * @param searchNum
     * @param start
     * @param end
     * @return
     */
    public static int binarySearchOne(int[] arr,int searchNum,int start,int end){
        if(start>end)
            return -1;
        int middle=(start+end)/2;
        if(searchNum<arr[middle])
            return binarySearchOne(arr,searchNum,start,middle-1);
        else if(searchNum>arr[middle])
            return binarySearchOne(arr,searchNum,middle+1,end);
        else
            return middle;
    }
 
    /**
     * 非遞歸實現
     * @param arr
     * @param searchNum
     * @return
     */
    private static int binarySearchTwo(int[] arr, int searchNum) {
        int start=0;
        int end=arr.length-1;
        while(start<=end){
            int middle=(start+end)/2;
            if(searchNum<arr[middle])
                end=middle-1;
            else if(searchNum>arr[middle])
                start=middle+1;
            else
                return middle;
        }
        return -1;
    }
}

關于“java二分查找的原理如何實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金华市| 股票| 丹东市| 府谷县| 武义县| 永兴县| 婺源县| 循化| 积石山| 鲁甸县| 名山县| 蒙自县| 老河口市| 菏泽市| 禹州市| 平和县| 舞钢市| 甘谷县| 临桂县| 旅游| 卫辉市| 碌曲县| 阜南县| 蓝山县| 大连市| 怀远县| 汨罗市| 达日县| 靖州| 江阴市| 陵水| 张北县| 杂多县| 托里县| 开封县| 彭水| 乃东县| 太白县| 江孜县| 东莞市| 九江市|