Java数据结构与算法:查找算法之二分查找

简介: Java数据结构与算法:查找算法之二分查找

Java数据结构与算法:查找算法之二分查找

大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,欢迎回到本专栏。在这个冰冷的季节里,我们将一同探讨Java中一种高效的查找算法——二分查找。让我们点燃知识的火花,一同解锁这个查找奇迹的秘密!

二分查找简介

二分查找,也称为折半查找,是一种高效的查找算法。但前提是必须作用在有序数组上。该算法的核心思想是通过每次查找,将待查找范围减半,直到找到目标元素为止。

二分查找的基本步骤

  1. 确定查找范围: 初始化左右边界,确定待查找范围。
  2. 计算中间位置: 计算左右边界的中间位置,即(left + right) / 2
  3. 比较中间元素:将中间位置的元素与目标元素进行比较。
  • 如果中间元素等于目标元素,查找成功,返回位置。
  • 如果中间元素大于目标元素,说明目标元素可能在左半边,更新右边界。
  • 如果中间元素小于目标元素,说明目标元素可能在右半边,更新左边界。
  1. 重复操作: 重复步骤2和步骤3,直到找到目标元素或左边界大于右边界,查找失败。

二分查找Java实现

下面是一个简单的Java代码示例,演示了如何使用二分查找在有序数组中查找目标元素:

public class BinarySearch {
    public static void main(String[] args) {
        int[] array = {1, 3, 5, 7, 9, 11, 13, 15};
        // 要查找的目标元素
        int target = 7;
        // 执行二分查找
        int result = binarySearch(array, target);
        // 输出查找结果
        if (result != -1) {
            System.out.println("目标元素 " + target + " 在数组中的位置是:" + result);
        } else {
            System.out.println("目标元素 " + target + " 不存在于数组中。");
        }
    }
    // 二分查找算法实现
    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) {
                right = mid - 1;
            }
            // 目标元素在右半边
            else if (arr[mid] < target) {
                left = mid + 1;
            }
            // 找到目标元素
            else {
                return mid;
            }
        }
        // 目标元素不存在
        return -1;
    }
}

二分查找的时间复杂度

二分查找的平均时间复杂度为O(log n),其中n是待查找序列的长度。相较于线性查找,二分查找更适用于大型有序数组的查找操作。

通过这篇文章,你应该对二分查找有了初步的了解。如果你对Java数据结构与算法感兴趣,敬请关注我的专栏,将为你带来更多有趣、实用的知识。希望你在编程的道路上越走越远,风度翩翩!


 

相关文章
|
3天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之冒泡排序
Java数据结构与算法:排序算法之冒泡排序
|
3天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之选择排序
Java数据结构与算法:排序算法之选择排序
|
2天前
|
存储 设计模式 算法
数据结构,算法宏观印象构建
数据结构,算法宏观印象构建
|
2天前
|
存储 算法 调度
算法与数据结构-栈篇
算法与数据结构-栈篇
11 0
|
2天前
|
存储 算法 Java
解密Java中的运行时数据结构
解密Java中的运行时数据结构
|
2天前
|
人工智能 算法
程序技术好文:算法与数据结构
程序技术好文:算法与数据结构
|
3天前
|
存储 算法 Java
老程序员分享:java之数据结构【入门篇】
老程序员分享:java之数据结构【入门篇】
|
3天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之插入排序
Java数据结构与算法:排序算法之插入排序
|
3天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之归并排序
Java数据结构与算法:排序算法之归并排序
|
3天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之快速排序
Java数据结构与算法:排序算法之快速排序