亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Java中Binary Search如何實現

小樊
83
2024-07-09 05:02:28
欄目: 編程語言

在Java中,可以使用遞歸或迭代的方式實現二分搜索算法。以下是一個使用迭代方式實現的示例代碼:

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;
        } else if (arr[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }

    return -1; // 如果找不到目標元素,則返回-1
}

在這段代碼中,arr是一個已經排序的數組,target是要查找的目標元素。在每一次迭代中,我們計算中間元素的索引mid,然后根據arr[mid]target的大小關系來更新leftright的值,直到找到目標元素或者left > right為止。如果找到目標元素,則返回它的索引,否則返回-1表示未找到。

另外,也可以使用遞歸的方式實現二分搜索算法,遞歸的實現方式如下:

public static int binarySearchRecursive(int[] arr, int target) {
    return binarySearchRecursive(arr, target, 0, arr.length - 1);
}

private static int binarySearchRecursive(int[] arr, int target, int left, int right) {
    if (left > right) {
        return -1;
    }

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

    if (arr[mid] == target) {
        return mid;
    } else if (arr[mid] < target) {
        return binarySearchRecursive(arr, target, mid + 1, right);
    } else {
        return binarySearchRecursive(arr, target, left, mid - 1);
    }
}

在這段代碼中,binarySearchRecursive方法是一個重載方法,它接受一個數組arr和目標元素target作為參數,并調用了另一個私有方法binarySearchRecursive來執行實際的搜索。在私有方法中,我們使用遞歸的方式來執行二分搜索,直到找到目標元素或者left > right為止。如果找到目標元素,則返回它的索引,否則返回-1表示未找到。

0
平舆县| 建瓯市| 佛冈县| 会东县| 绵竹市| 遂昌县| 祁连县| 信宜市| 冀州市| 峨边| 杭锦旗| 红河县| 龙井市| 临夏县| 钟山县| 南开区| 和静县| 黔西县| 油尖旺区| 房产| 航空| 绥中县| 广安市| 南投市| 靖宇县| 扶风县| 大关县| 融水| 兴仁县| 黄龙县| 绥宁县| 武陟县| 苍南县| 报价| 陵川县| 平山县| 平昌县| 石台县| 历史| 松滋市| 屏东市|