久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

java怎么實現二分法查找

153次閱讀
沒有評論

共計 914 個字符,預計需要花費 3 分鐘才能閱讀完成。

二分法查找(Binary Search)是一種常用的查找算法,適用于有序數組或有序列表。其基本思想是將查找區間分為兩部分,將目標值與中間元素比較,如果相等則返回中間元素的位置,如果目標值小于中間元素,則在左半部分繼續查找,否則在右半部分繼續查找,直到找到目標值或查找區間為空。

以下是一個使用 Java 實現二分法查找的示例代碼:

public class BinarySearch {public static int binarySearch(int[] arr, int target) {int left = 0;
        int right = arr.length - 1;

        while (left <= right) {int mid = left + (right - left) / 2;

            // 目標值與中間元素相等,返回中間元素的位置
            if (arr[mid] == target) {return mid;
            }

            // 目標值小于中間元素,在左半部分繼續查找
            if (arr[mid] > target) {right = mid - 1;
            }
            
            // 目標值大于中間元素,在右半部分繼續查找
            else {left = mid + 1;
            }
        }

        // 查找區間為空,未找到目標值
        return -1;
    }

    public static void main(String[] args) {int[] arr = {1, 3, 5, 7, 9, 11};
        int target = 7;
        int result = binarySearch(arr, target);
        
        if (result != -1) {System.out.println(" 目標值在數組中的位置為:" + result);
        } else {System.out.println(" 目標值在數組中未找到 ");
        }
    }
}

在上述示例代碼中,binarySearch方法接收一個有序數組和目標值作為參數,使用兩個指針 leftright來表示查找區間的左右邊界。在每次迭代中,計算中間位置 mid 并與目標值進行比較,根據比較結果調整左右邊界,最終找到目標值的位置或確定目標值不存在。在 main 方法中,我們定義了一個有序數組 arr 和目標值 target,并調用binarySearch 方法進行查找,輸出結果為目標值在數組中的位置或未找到的提示信息。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-09發表,共計914字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 邵阳县| 丹棱县| 剑阁县| 佳木斯市| 德安县| 乌恰县| 永胜县| 靖安县| 神池县| 达尔| 仙桃市| 衡水市| 洞口县| 石景山区| 秀山| 宝清县| 柯坪县| 林西县| 黎平县| 广宗县| 临清市| 恩平市| 贡觉县| 甘孜县| 巨野县| 和龙市| 鹿邑县| 凌云县| 漯河市| 绥宁县| 汪清县| 比如县| 冕宁县| 大冶市| 澳门| 偃师市| 枞阳县| 无锡市| 新丰县| 阿巴嘎旗| 紫金县|