Java查找算法——(一)顺序查找(完整详解,附有案例+代码)

文章目录

      • 19.1.1顺序查找★
        • 1.1.1查询某个元素是否存在
        • 1.1.2查询元素在数组中索引
        • 1.1.3 同1.1.2

19.1.1顺序查找★

顺序查找也称基本查找(数据可以没有任何顺序)

顺序查找适合于存储结构为数组或者链表。

基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线的一端开始,顺序扫描,依次将遍历到的结点与要查找的值相比较,若相等则表示查找成功;若遍历结束仍没有找到相同的,表示查找失败。

1.1.1查询某个元素是否存在
  • 需求:定义一个方法利用基本查找,查询某个元素是否存在

    数据如下:{131, 127, 147, 81, 103, 23, 7, 79}

public class SearcheTest {public static void main(String[] args) {//基本查找/顺序查找//从0索引开始挨个往后查找//需求:定义一个方法利用基本查找,查询某个元素是否存在//数据如下:{131, 127, 147, 81, 103, 23, 7, 79}int[] arr = {131, 127, 147, 81, 103, 23, 7, 79};int number = 7;boolean seachNumber = basicSearch(arr, number);System.out.println(seachNumber);}
//定义方法,查找数组中的元素是否存在public static boolean basicSearch(int[] arr ,int num){for (int i = 0; i < arr.length; i++) {if (arr[i] == num){return true;}}return false;}// main ending....
}
1.1.2查询元素在数组中索引
  • 需求:定义一个方法利用基本查找,查询某个元素在数组中的索引

    (不需要考虑数组中元素是否存在)

public class SearchTest02 {public static void main(String[] args) {int[] arr = {131, 127, 147, 81, 103, 23, 7, 79};int number = 127;int index = basicSearch(arr, number);System.out.println(index);//1}// 定义方法,判断数组中的元素所在索引,并将此元素所在索引返回public static int basicSearch(int[] arr ,int num){for (int i = 0; i < arr.length; i++) {if (arr[i] == num){// 返回索引return i;}}return -1;}
}
1.1.3 同1.1.2
  • 需求:定义一个方法利用基本查找,查询某个元素在数组中的索引

    (需要考虑数组中元素是否存在)

public class SearchTest03 {public static void main(String[] args) {int[] arr = {131, 127, 147, 81, 127, 23, 7, 79};int number = 127;ArrayList<Integer> list = basicSearch(arr, number);// 遍历索引所在的集合//1.增强for遍历//for (Integer integer : list) {//     System.out.println(integer);// 1 4//}// 2.Lambda表达式遍历//list.forEach((Integer integer)-> System.out.println(integer));//3.普通for遍历for (int i = 0; i < list.size(); i++) {Integer it = list.get(i);System.out.println(it);//1  4}}// 定义方法,判断数组中的元素所在索引,并返回// 如果要返回多个数据,可以把这些数据添加到数组或者集合中
public static ArrayList<Integer> basicSearch(int[] arr ,int num){// 定义集合,存储相同元素所在的索引ArrayList<Integer> list = new ArrayList<>();for (int i = 0; i < arr.length; i++) {if (arr[i] == num){// 如果数组中找到这个元素,将此元素索引添加到集合中list.add(i);}}// 数组循环后,返回索引所在的集合return list;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1543666.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

WEB领域是不是黄了还是没黄

进入2024年后&#xff0c;WEB领域大批老表失业&#xff0c;一片哀嚎&#xff0c;个个饿的鬼叫狼嚎&#xff0c;为啥呢&#xff0c;下面是我个人的见解和看法。 中国程序员在应用层的集中 市场需求&#xff1a;中国的互联网行业在过去几年中经历了爆炸性增长&#xff0c;尤其是…

python和pyqt-tools安装位置

一.python的安装位置 1.查询安装的python的位置 先查询python&#xff0c;然后输入import sys和sys.path 二.python-tools的安装位置 找到python的文件后按下图路径即可查到tools的文件

UEFI EDK2框架学习 (一)

01 Shell界面打印 执行qemu指令后 qemu-system-x86_64 -drive ifpflash,formatraw,fileOVMF.fd -nographic -net none出现shell界面 02 在UEFI shell中创建APP 创建SimplestApp文件夹以及SimplestApp.c、SimplestApp.inf cd edk2 mkdir SimplestAppuuidgen // generate …

论文不会写快来看!分享4款ai改写论文软件

在当今学术研究和写作领域&#xff0c;AI论文改写工具已经成为不可或缺的助手。这些工具不仅能够帮助研究人员提高写作效率&#xff0c;还能确保论文的质量和原创性。以下是四款值得推荐的AI改写论文软件&#xff0c;其中特别推荐千笔-AIPassPaper。 千笔-AIPassPaper 传送门&…

【在.net6和WPF框架下进行海康SDK开发】(一)如何引用Dll

最近有个上位机项目&#xff0c;需要将海康VisionMaster的部分功能嵌入到统一的界面。项目使用WPFdotNet6开发&#xff0c;UI库使用HandyControl。 先说下需求&#xff0c;在某个TabItem内嵌入一个UserControl&#xff0c;UserContr内嵌入VisionMaster运行界面。 本以为按照海康…

开关频率与谐振频率对应的模态图

当fsfr时 当fr2<fs<fr1时 当fs>fr1时 开关频率对应输入电压的频率 谐振频率对应的是谐振电流的频率

人工智能之计算机视觉的发展历程与相关技术内容,相应的模型介绍

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能之计算机视觉的发展历程与相关技术内容&#xff0c;相应的模型介绍。本文围绕计算机视觉这一领域&#xff0c;以问答的形式呈现了关键问题及详细解答。内容涵盖计算机视觉的基本概念、技术原理、应用场景等…

Java刷题知识总结(一)

1.局部变量参与运算前是必须要初始化的&#xff0c;比如下面的代码就会编译出错&#xff0c;提示y必须要初始化。 public static void main(String[] args) {int x 1;int y;int z x y; } 2.ArrayList和Vector主要区别是什么&#xff1f; A Vector与ArrayList一样&#xf…

浮动静态路由

浮动静态路由 首先我们知道静态路由的默认优先级是60&#xff0c;然后手动添加一条静态路由优先级为80的路由作为备份路由。当主路由失效的备份路由就会启动。 一、拓扑图 二、基本配置 1.R1: <Huawei>system-view [Huawei]sysname R1 [R1]interface GigabitEthernet…

嵌入式linux方向细分工作岗位分析

大家好,今天主要给大家分享一下,linux方向细分的工作岗位有哪些?,为即将进入linux领域的开发者指明方向。 第一:总结分布 第二:Linux BSP工程师岗位 工作内容: 1、开发和维护Linux系统的板级支持包(BSP),包括启动加载程序、设备驱动、文件系统等。 2、负责解决硬件和软…

企业上云不迷茫,香港电讯助力企业上云全攻略

在全球政策和市场双重驱动下&#xff0c;云计算产业正迎来前所未有的增长浪潮。据中国信通院《云计算白皮书&#xff08;2023年&#xff09;》1显示&#xff0c;2022年全球云计算市场规模已达到4,910亿美元&#xff0c;同比增长率高达百分之十九。而在中国市场&#xff0c;这一…

实现一个基于nio的discard server

写在前面 源码 。 为了能够进一步的熟悉下nio相关的api操作&#xff0c;本文来实现一个基于nio的discard server。 discard server的意思是&#xff0c;server接收到来自client的一个消息之后&#xff0c;直接就将连接关闭&#xff0c;即discard。 1&#xff1a;正戏 1.1&…

【ollama 在linux 上离线部署 本地大模型】

本文继续来讲如何在linux上部署离线本地智能大模型&#xff0c;前篇如下&#xff1a;window上部署离线大模型 首先还是安装ollama linux版本&#xff0c;如果完全离线的话&#xff0c;可以从github上下载一个linux 版本的压缩包传上去 git hub上搜索ollama 找到右下角 找到li…

变量与变量提升【JavaScript】

一、变量 在 JavaScript 中&#xff0c;变量 是用于存储数据的容器。你可以使用变量来保存和操作各种类型的数据。其中&#xff0c;声明变量、变量初始化和变量赋值是三个相关但不同的概念。下面是它们之间的区别与联系&#xff1a; 1. 变量声明 变量声明是定义变量的过程。它…

基于SpringBoot+Vue+MySQL的教学资料管理系统

系统展示 管理员后台界面 教师后台界面 系统背景 在当今信息化高速发展的时代&#xff0c;教育机构面临着日益增长的教学资料管理需求。为了提升教学管理的效率&#xff0c;优化资源的配置与利用&#xff0c;开发一套高效、便捷的教学资料管理系统显得尤为重要。基于SpringBoot…

出海企业如何利用海外云手机开展业务?

随着全球化的持续推进&#xff0c;越来越多的企业将目光投向海外市场。然而&#xff0c;面对不同国家的网络环境、政策限制以及文化和语言的差异&#xff0c;出海企业在拓展海外业务时遇到了许多障碍。海外云手机作为一种创新的解决方案&#xff0c;为企业提供支持和帮助。 海外…

Spring Data Rest 远程命令执⾏命令(CVE-2017-8046) 靶场攻略

靶场环境 vulhub/spring/CVE-2017-8046 漏洞复现 1. 访问 http://47.113.231.0:8080/customers/1 2.抓取数据包&#xff0c;使⽤PATCH请求来修改 PATCH /customers/1 HTTP/1.1 Host: 47.113.231.0:8080 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en U…

微信抢红包设计

包几个红包&#xff0c;发红包的总金额塞钱进红包&#xff0c;弹出支付的界面&#xff0c;支付完之后就会被发到 群里抢拆红包&#xff0c;才是真正的抢红包 红包金额怎么分配 每个人至少抢到1分钱人数抢到的金额之和就应该是红包的总金额一个人抢的红包不应该极度的大&#…

选择排序(C语言实现)

目录 1.基本思想 2.代码实现 代码思路 代码实现 代码测试 3.复杂度分析 1&#xff09;时间复杂度 2&#xff09;空间复杂度 4.特性总结 1.基本思想 选择排序是一种简单直观的比较排序算法。该算法的基本思想是在每一轮中选出当前未排序部分的最小&#xff08;或最大&a…

xv6讲解(2) Operating system organization

这一章 讲操作系统是如何实现进程并发、进程隔离和进程交互(multiplexing isolation and interaction) 进程并发&#xff1a; 操作系统需要同时支持多个进程。如一个进程可以使用fork来启动新的进程。对计算机的资源进行时间共享&#xff0c;确保所有进程都有机会执行。 进程…