在 Java 中实现二分查找法

简介: 【10月更文挑战第9天】

以下是一个详细的在 Java 中实现二分查找法的示例代码

public class BinarySearchExample {
   

    // 二分查找函数
    public static int binarySearch(int[] array, int target) {
   
        int left = 0;
        int right = array.length - 1;

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

            // 如果中间元素等于目标元素,返回中间索引
            if (array[mid] == target) {
   
                return mid;
            } else if (array[mid] > target) {
   
                right = mid - 1;
            } else {
   
                left = mid + 1;
            }
        }

        // 未找到目标元素,返回-1
        return -1;
    }

    public static void main(String[] args) {
   
        int[] array = {
   1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
        int target = 7;

        int result = binarySearch(array, target);

        if (result!= -1) {
   
            System.out.println("目标元素在数组中的索引为:" + result);
        } else {
   
            System.out.println("目标元素不存在于数组中");
        }
    }
}

在上述代码中,binarySearch 方法实现了二分查找的逻辑。它通过不断将查找范围缩小一半,直到找到目标元素或确定目标元素不存在。

main 方法中,我们创建了一个有序数组和目标元素,然后调用 binarySearch 方法进行查找,并根据结果输出相应的信息。

二分查找的关键在于通过比较中间元素与目标元素的大小,来确定下一步应该在左半部分还是右半部分继续查找。这种方法的时间复杂度为 $O(\log n)$,效率较高,但前提是数组必须是有序的。

目录
相关文章
|
5月前
|
Java
java实现二分查找
java实现二分查找
40 0
【Java每日一题,左二分查找】Where is the Marble?
【Java每日一题,左二分查找】Where is the Marble?
|
13天前
|
算法 Java
java冒泡排序与二分查找(详解)
java冒泡排序与二分查找(详解)
28 4
|
3月前
|
算法 Java
Java 使用二分查找快速定位元素位置
Java 使用二分查找快速定位元素位置
19 0
|
4月前
|
存储 算法 Java
Java查找算法概览:二分查找适用于有序数组,通过比较中间元素缩小搜索范围;哈希查找利用哈希函数快速定位,示例中使用HashMap存储键值对,支持多值关联。
【6月更文挑战第21天】Java查找算法概览:二分查找适用于有序数组,通过比较中间元素缩小搜索范围;哈希查找利用哈希函数快速定位,示例中使用HashMap存储键值对,支持多值关联。简单哈希表实现未涵盖冲突解决和删除操作。
47 1
|
4月前
|
Java
二分查找-非递归(java)
二分查找-非递归(java)
|
4月前
|
Java
二分查找-递归(java)
二分查找-递归(java)
|
4月前
|
人工智能 算法 Java
二分查找Java版
二分查找Java版
32 0
|
4月前
|
Java
Java二分查找小例子
Java二分查找小例子
20 0
|
5月前
|
存储 算法 Java
二分查找(Java) 详细讲解 一文足矣
二分查找(Java) 详细讲解 一文足矣