经典Java面试题解析:二分查找

8,475次阅读
没有评论

共计 957 个字符,预计需要花费 3 分钟才能阅读完成。

草莓夹饼干
2023-07-08 09:30:00
浏览数 (1416)

在 Java 的面试中,二分查找是一种常见的查找算法,用于在有序数组中查找指定元素。本文将介绍一道经典的 Java 面试题——二分查找,并提供详细的解析和解题思路。

题目

给定一个有序整数数组和一个目标值,要求编写一个函数来判断目标值是否在数组中出现。

示例

 输入:nums = [1, 3, 5, 7, 9], target = 5
输出:true

解析与解题思路

 二分查找算法是一种高效的查找算法,适用于有序数组。下面是使用二分查找解决该问题的具体步骤:

  1. 初始化左指针 left 为 0,右指针 right 为数组长度减 1。
  2. 在循环中,计算中间位置 mid 为 (left + right) / 2。
  3. 比较中间位置的元素 nums[mid] 与目标值 target 的大小关系:如果 nums[mid] 等于 target,则返回 true,表示目标值存在于数组中。如果 nums[mid] 小于 target,则更新左指针 left 为 mid + 1,表示目标值可能在右半部分。如果 nums[mid] 大于 target,则更新右指针 right 为 mid – 1,表示目标值可能在左半部分。
  4. 重复步骤 2 和步骤 3,直到左指针 left 大于右指针 right,表示搜索结束。
  5. 如果循环结束时仍未找到目标值,则返回 false,表示目标值不存在于数组中。

下面是使用二分查找解决该问题的 Java 代码示例:

public class BinarySearch {public static boolean binarySearch(int[] nums, int target) {
        int left = 0;
        int right = nums.length - 1;

        while (left 

在上述代码中,我们使用二分查找算法在给定的有序整数数组中查找目标值。通过比较中间位置的元素和目标值的大小关系,我们逐步缩小查找范围,最终确定目标值是否在数组中。

结论

通过使用二分查找算法,我们可以高效地在有序数组中查找目标值。这道经典的 Java 面试题考察了面试者对二分查找算法的理解和实现。理解二分查找的基本原理和实现方式对于解决查找问题具有重要意义。在面试中,清晰地解释算法思路和实现过程,展现出自己的编程能力和问题解决能力,将为面试成功奠定基础。

  学 java,就到 java 编程狮

原文地址: 经典 Java 面试题解析:二分查找

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-20发表,共计957字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)