温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java中如何编写Binary Search代码

发布时间:2025-11-21 03:05:30 来源:亿速云 阅读:105 作者:小樊 栏目:编程语言

在Java中,二分查找(Binary Search)是一种高效的查找算法,适用于已排序的数组。以下是一个简单的二分查找的实现示例:

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; // 找到目标值,返回索引
            } else if (arr[mid] < target) {
                left = mid + 1; // 目标值在右半部分
            } else {
                right = mid - 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方法

    • 接受一个已排序的整数数组arr和一个目标值target
    • 使用两个指针leftright分别指向数组的起始和结束位置。
    • while循环中,计算中间索引mid,并比较arr[mid]target
      • 如果arr[mid]等于target,则返回mid
      • 如果arr[mid]小于target,则将left移动到mid + 1,继续在右半部分查找。
      • 如果arr[mid]大于target,则将right移动到mid - 1,继续在左半部分查找。
    • 如果循环结束仍未找到目标值,则返回-1
  2. main方法

    • 创建一个已排序的数组sortedArray和一个目标值target
    • 调用binarySearch方法进行查找,并根据返回结果输出相应的信息。

注意事项:

  • 二分查找要求数组必须是已排序的。
  • 计算中间索引时使用left + (right - left) / 2可以避免整数溢出的问题。

通过这种方式,你可以在Java中实现一个基本的二分查找算法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI