Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java二分查找

作者:当过家家——变成现实。   发布日期:2025-10-16   浏览:26

public class BinarySearch {
    // 二分查找算法的实现
    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; // 防止溢出,等同于 (left + right) / 2

            // 检查中间位置是否是目标值
            if (array[mid] == target) {
                return mid; // 找到目标值,返回索引
            }

            // 如果目标值大于中间值,则在右半部分继续查找
            if (array[mid] < target) {
                left = mid + 1;
            } else {
                // 如果目标值小于中间值,则在左半部分继续查找
                right = mid - 1;
            }
        }

        // 如果没有找到目标值,返回 -1
        return -1;
    }

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

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

解释说明:

  1. binarySearch 方法:实现了二分查找算法。它接受一个已排序的整数数组 array 和一个目标值 target,并返回目标值在数组中的索引。如果目标值不在数组中,则返回 -1
  2. while (left <= right) 循环:确保搜索范围有效,即左边界不超过右边界。
  3. mid 计算:使用 left + (right - left) / 2 来计算中间位置,避免了 (left + right) / 2 可能导致的整数溢出问题。
  4. 比较和调整边界:根据中间值与目标值的比较结果,调整 leftright 边界,逐步缩小搜索范围。
  5. main 方法:提供了一个简单的测试用例,演示如何使用 binarySearch 方法查找目标值,并输出结果。

上一篇:java 生成二维码图片

下一篇:java mqtt协议

大家都在看

java连接数据库的代码

java djl

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java发送qq邮件

java 判断

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站