欢迎访问宙启技术站
智能推送

使用Java函数实现二分查找算法

发布时间:2023-05-20 20:55:12

二分查找算法也称为折半查找,是一种在有序数组中查找某一特定元素的搜索算法。其基本思想是将有序数组分成两个部分,取数组中间元素与要查找的元素进行比较,如果中间元素等于要查找的元素,则找到,返回下标;如果中间元素大于要查找的元素,则在左半部分继续查找;如果中间元素小于要查找的元素,则在右半部分继续查找,直到找到要查找的元素或者查找范围为空。

Java函数实现二分查找算法的基本步骤如下:

1. 定义二分查找函数,函数名为binarySearch,包含三个参数:有序数组array,要查找的元素key,以及数组的长度length。

2. 初始化查找区间,left为0,right为length-1。

3. 使用while循环进行查找,当left小于等于right时继续循环,当left大于right时查找失败,返回-1。

4. 计算中间元素的下标mid,使用二分查找的核心思想进行比较:

- 如果中间元素等于要查找的元素key,则找到,返回下标。

- 如果中间元素大于要查找的元素key,则在左半部分查找,将right更新为mid-1。

- 如果中间元素小于要查找的元素key,则在右半部分查找,将left更新为mid+1。

5. 当循环结束时,查找失败,返回-1。

Java代码实现如下:

public static int binarySearch(int[] array, int key, int length){
    int left = 0;
    int right = length - 1;
    while(left <= right){
        int mid = (left + right) / 2;
        if(array[mid] == key){
            return mid;
        }else if(array[mid] > key){
            right = mid - 1;
        }else{
            left = mid + 1;
        }
    }
    return -1;
}

测试代码如下:

public static void main(String[] args){
    int[] array = {1, 3, 5, 7, 9};
    int index = binarySearch(array, 3, array.length);
    System.out.println("查找结果:" + index);
}

输出结果:

查找结果:1

说明在数组array中成功查找到元素3,其下标为1。

使用Java函数实现二分查找算法可以提高代码的可读性和可维护性,同时,其执行效率较高,适用于大规模数据的快速搜索。