Java经典算法汇总之顺序查找(Sequential Search)

Java经典算法汇总之顺序查找(Sequential Search)

概述

顺序查找法,又称线性查找法,是一种简单的查找方法,适用于线性表长度较小、存储结构不要求有序以及插入和删除操作较多的情况下。其基本思想就是将每一个记录逐一与查找关键字进行比较,直到找到了相等的记录为止,或者整个表扫描完毕也未找到。

算法实现

以下是Java实现顺序查找的代码示例:

/**
 * 串行查找算法
 * @param arr 查找的数组
 * @param target 要查找的目标值
 * @return 返回目标值在数组中的索引,若未找到则返回-1
 */
public static int sequentialSearch(int[] arr, int target) {
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == target) {
            return i;
        }
    }
    return -1;
}

示例说明

示例1

假设现有一个整数数组arr,包含以下几个元素:

[ 5, 9, 7, 3, 2, 8, 6 ]

现在要查找数字7在该数组中的位置。我们可以使用顺序查找法来解决此问题,使用上文提到的sequentialSearch方法:

int[] arr = { 5, 9, 7, 3, 2, 8, 6 };
int target = 7; // 要查找的目标值
int index = sequentialSearch(arr, target); // 返回目标值在数组中的索引,若未找到则返回-1
if (index == -1) {
    System.out.println("未找到目标值");
} else {
    System.out.println("目标值在数组中的位置是:" + index);
}

此时输出结果为:

目标值在数组中的位置是:2

示例2

现在假设有一个数组arr,其中包含以下元素:

[ 18, 5, 12, 16, 7, 3, 10 ]

我们要查找数字13在该数组中的位置,由于该数字不在数组中,因此上述方法返回结果应该为-1。代码示例如下:

int[] arr = { 18, 5, 12, 16, 7, 3, 10 };
int target = 13; // 要查找的目标值
int index = sequentialSearch(arr, target); // 返回目标值在数组中的索引,若未找到则返回-1
if (index == -1) {
    System.out.println("未找到目标值");
} else {
    System.out.println("目标值在数组中的位置是:" + index);
}

此时输出结果为:

未找到目标值

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java经典算法汇总之顺序查找(Sequential Search) - Python技术站

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

相关文章

  • Java完美实现2048小游戏

    Java完美实现2048小游戏攻略 游戏说明 2048是一款益智类小游戏,玩家需要通过上下左右滑动操作,使得相同数字的方块叠加,最终得到2048这个数字的方块。 Java实现方式 Java可以使用Java Swing组件来实现2048小游戏。在Java Swing中,使用JFrame作为主窗口,使用JPanel作为游戏区域,使用JLabel作为每个数字格子的…

    Java 2023年5月19日
    00
  • javascript读写json示例

    这里是“JavaScript读写JSON示例”的完整攻略。 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据格式,常用于将数据从服务器传输到网页中。它基于JavaScript语法,但与JavaScript代码不同,JSON数据可以被多种编程语言读取和解析。 举个例子,下面是一个简单的JSON对象: { &qu…

    Java 2023年5月26日
    00
  • java中通用的线程池实例代码

    下面就为大家详细讲解java中通用的线程池实例代码的完整攻略。 1. 线程池的概念 在java中,线程池是一个预先构建的线程集合,以便在需要执行任意数量的任务时重复使用线程,而不需要频繁地创建新线程。线程池中的线程可以在执行一些任务后重新被分配给新的任务,这样可以避免线程的频繁创建和销毁,从而提高了线程的利用率。 2. 如何使用线程池 在Java中,线程池是…

    Java 2023年5月30日
    00
  • 浅谈SpringMVC+Spring3+Hibernate4开发环境搭建

    下面是关于SpringMVC+Spring3+Hibernate4开发环境搭建的详细攻略,包含两个示例说明。 SpringMVC+Spring3+Hibernate4开发环境搭建 SpringMVC、Spring和Hibernate是Java Web应用程序开发中常用的框架。在本文中,我们将介绍如何将这三个框架整合在一起,并搭建开发环境。 步骤1:添加依赖 …

    Java 2023年5月17日
    00
  • SpringBoot 导出数据生成excel文件返回方式

    准备工作 首先,我们需要在项目的依赖文件中添加对poi-ooxml的依赖,这样我们才能够在Java中读写Excel文件。 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <ver…

    Java 2023年5月19日
    00
  • 新手入门Jvm–jvm概览

    新手入门Jvm–JVM概览 什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,是Java程序运行的环境。Java程序在运行时,首先由Java编译器编译成字节码(bytecode),然后由JVM解释执行字节码。JVM的主要功能是解释执行字节码,并在运行时提供一系列的服务(如垃圾回收、动态加载、异常处理)。JVM是一个相对…

    Java 2023年5月19日
    00
  • Springboot+hibernate实现简单的增删改查示例

    现在我将详细讲解如何用Springboot和Hibernate实现一个简单的增删改查示例,示例将包括两个部分。 简介 Springboot是一个开源的Java开发框架,可以帮助开发者快速构建高效、可扩展的web应用程序。而Hibernate则是一个Java持久化框架,通过ORM(对象关系映射)的方式来实现对象和关系数据之间的映射。通过结合使用Springbo…

    Java 2023年5月19日
    00
  • SpringBoot深入分析运行原理与功能实现

    SpringBoot深入分析运行原理与功能实现 什么是SpringBoot SpringBoot是一个开源的、轻量级的框架,用于快速构建基于Spring框架的Web应用程序和微服务。相对于传统的Spring框架,它更加简单方便,提供了自动配置、嵌入式Web服务器等特性,使得开发者可以快速构建可靠的、健壮的Web应用程序。 以下是SpringBoot的一些特性…

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