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

溫馨提示×

java怎么實現二分法查找

小億
85
2023-11-28 13:46:20
欄目: 編程語言

二分法查找(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方法進行查找,輸出結果為目標值在數組中的位置或未找到的提示信息。

0
勃利县| 积石山| 浏阳市| 德安县| 桂林市| 九江县| 乌拉特后旗| 修文县| 武陟县| 辽阳县| 新和县| 交城县| 涞源县| 石城县| 延庆县| 监利县| 信丰县| 马关县| 泰兴市| 平昌县| 宁武县| 鄯善县| 呼伦贝尔市| 都安| 湟源县| 三江| 西乌珠穆沁旗| 泾阳县| 威信县| 拉萨市| 麻栗坡县| 营山县| 湘潭市| 宿州市| 兰西县| 游戏| 武山县| 韶关市| 宣恩县| 教育| 潜江市|