Java实现的两种常见简单查找算法示例【快速查找与二分查找】

yizhihongxing

下面我就来详细讲解一下Java实现的快速查找和二分查找算法。

一、快速查找

快速查找,也称为顺序查找,是一种最简单的查找算法。这种算法就是在待查找的一组数据中,顺序地遍历每一个数据,直到找到待查找的目标数据为止,或者遍历完数组都没有找到目标数据。

Java实现快速查找的代码如下:

public class QuickFind {

    // 查找函数
    public static int search(int[] arr, int target) {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == target) {
                return i;
            }
        }
        return -1;
    }

    // 测试函数
    public static void main(String[] args) {
        int[] arr = {4, 3, 7, 1, 9, 2};
        int target = 7;
        int index = search(arr, target);
        System.out.println("目标数据" + target + "的下标是:" + index);
    }
}

上述代码中,search函数接收一个整型数组arr和一个整型数值target,然后顺序遍历数组arr中的每一个元素,查找是否有元素的值等于target。如果找到了目标元素,就返回该元素在数组中的下标,否则返回-1。main函数是一个测试函数,用来演示快速查找的用法。在本示例中,我们先定义了一个整型数组arr,然后查找数组中的数据7,最后打印出该元素在数组中的下标。

二、二分查找

二分查找,也称为折半查找,是一种针对有序数组的查找算法。基本思想是先在数组的中间位置进行比较,如果目标元素等于中间元素,则查找成功。如果目标元素小于中间元素,则在数组的左半部分继续查找,否则在数组的右半部分继续查找,不断缩小查找范围,直到找到目标元素为止。

Java实现二分查找的代码如下:

public class BinarySearch {

    // 查找函数
    public static int search(int[] arr, int target) {
        int left = 0, right = arr.length - 1;
        while (left <= right) {
            int mid = (left + right) / 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[] arr = {1, 2, 3, 4, 7, 9};
        int target = 7;
        int index = search(arr, target);
        System.out.println("目标数据" + target + "的下标是:" + index);
    }
}

上述代码中,search函数接收一个有序整型数组arr和一个整型数值target,然后采用二分查找的方式,从数组中间位置开始查找。如果目标元素等于中间元素,则查找成功,返回中间位置下标。如果目标元素小于中间元素,则在数组的左半部分继续查找;否则在数组的右半部分继续查找。直到找到目标元素为止,或者遍历完整个数组都没有找到目标元素,返回-1。

以上就是Java实现的两种常见简单查找算法:快速查找和二分查找的攻略过程,其中包含了两个实际应用的示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现的两种常见简单查找算法示例【快速查找与二分查找】 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 如何使用Java Agent?

    以下是使用Java Agent的完整使用攻略: 什么是Java Agent? Java Agent是JVM的一个重要功能,可以在运行时修改代码行为。Java Agent可以利用JVM提供的Java Instrumentation API,拦截和转换字节码,以实现代码注入、性能优化、运行时监控等功能。 如何使用Java Agent? 以下是使用Java Age…

    Java 2023年5月11日
    00
  • Java线程池高频面试题总结

    Java线程池高频面试题总结 线程池是什么 线程池是一种用于管理多个线程的机制,它能够根据应用程序需要动态地增减线程。线程池在执行完任务后并不会立即销毁线程,而是将线程放入池中等待下一次使用。线程池通常会预先准备好一定数量的线程,这些线程被称为核心线程,在需要时更多的线程将被创建。 为什么使用线程池 线程池有以下优点: 减少线程创建的开销: 创建线程需要花费…

    Java 2023年5月19日
    00
  • Java8中StringJoiner类的使用详解

    Java8中StringJoiner类的使用详解 在Java8中,StringJoiner类是一个非常有用的工具,用于连接字符串,特别是多个字符串。本文详细讲解了如何使用StringJoiner类,并提供了一些示例,让你更好地理解如何使用它。 什么是StringJoiner类? StringJoiner类是Java 8中新增的一个类,它位于java.util…

    Java 2023年5月26日
    00
  • 数组在java中的扩容的实例方法

    针对“数组在Java中的扩容的实例方法”,我们可以从以下几个方面进行讲解: 如何创建数组 数组扩容的实现原理 数组扩容的示例说明 一、如何创建数组 在Java中,创建一个数组可以通过以下方式来实现: int[] array = new int[10]; 上述代码中,我们声明了一个int类型的数组,且其大小为10,即创建了一个长度为10的int类型数组。 同时…

    Java 2023年5月26日
    00
  • IDEA2020.1.2创建web项目配置Tomcat的详细教程

    下面给您讲解详细的“IDEA2020.1.2创建web项目配置Tomcat的详细教程”攻略。 步骤一:安装Tomcat 在安装Tomcat之前,必须先确认JDK是否安装成功,因为Tomcat是依赖于JDK的,若JDK未安装则需要先安装JDK。可在官网上下载Tomcat安装包,解压到指定目录即可。 步骤二:创建WEB项目 1.打开Intellij IDEA,选…

    Java 2023年6月16日
    00
  • 员工管理系统java版

    这里为您详细讲解“员工管理系统java版”的完整攻略。 系统概述 这是一个基于Java语言开发的员工管理系统,主要功能包括员工信息录入、查询、修改和删除,部门信息录入、查询和修改,以及用户权限管理等。 系统环境 本系统运行需要JDK1.8及以上版本,建议使用IntelliJ IDEA等集成开发环境进行开发和调试。 数据库设计 本系统使用MySQL数据库进行数…

    Java 2023年5月23日
    00
  • Java 8 Time Api 使用方法技巧

    Java 8 Time API 使用方法技巧 介绍 Java 8 引入了全新的日期和时间 API,称为 Java 8 Time API,它位于 java.time 包下。相较于旧版的 Java 时间 API(java.util.Date 和 java.util.Calendar),Java 8 Time API 显得更加真正的面向对象,功能性也更强。 Jav…

    Java 2023年5月20日
    00
  • java初学者如何让编程学习起来更简单

    这里提供一些帮助Java初学者更轻松学习编程的攻略: 1. 选择适合自己的学习方法 学习方法的选择对于学习编程语言来说非常重要。有的人更喜欢以视频教程和示例代码为主,而有些人则更喜欢以书本为主。此外,还有一些适用于不同学习风格的在线课程,例如交互式课程和mooc(大规模开放式在线课程)。初学者应该探索各种不同的学习途径,找出自己最适合的一种。 2. 坚持练习…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部