常见查找算法java程序

Java小程序开发与算法实现详解 htmltable {th, td {th {pre {简介:Java小程序是用Java语言编写的小规模应用程序,可独立运行或嵌入网页提供交互功能。本教程通过源码解析,深入讲解Java基础、Applet开发、常见算法(如排序、查找、图遍历)的实现思路,帮助初学者掌握编程核心技能。内容涵盖面向对象设计、异常处理、调试技巧与文档注释,结合编程实践提升代码理解和开发能力,为后续软件开发奠定坚实基础。 阅读详情
import java.util.Scanner;

public class Ch1_1 {
    public static void main(String[] args) {

        int[] array = {1,2,3,6,9,10,13,16,45,56};
        Scanner scn = new Scanner(System.in);
        while (scn.hasNext()) {
            int number = scn.nextInt();

            // 顺序查找
            System.out.println("lineSearch index:"+lineSearch(array, number));

            // 二分查找
            System.out.println("lineSearch index:"+binarySearch(array, number));
        }
    }

    // 顺序查找法, 逐个查找, 时间复杂度n
    public static int lineSearch(int[] array, int number) {
        int index = -1;
        for (int i=0;i<array.length;i++) {
            if (array[i] == number) {
                index = i;
                break;
            }
        }
        return index;
    }

    // 二分查找法, 也称折半查找, 限定为有序数列, 时间复杂度O(log2n)
    public static int binarySearch(int[] array, int number) {
        int start = 0;
        int end = array.length-1;
        int mid = end / 2;
        int index = -1;

        while (start <= end) {
            if (array[mid] == number) {
                index = mid;
                break;
            } else if (array[mid] > number) {
                end = mid -1;
                mid = (start + end)/2;
            } else {
                start = mid +1;
                mid = (start + end)/2;
            }
        }
        return index;
    }
}

参考文献:
[1] Data Structure & Algorithm七大查找算法 - Poll的笔记 - 博客园

常用数据结构排序与查找算法实现详解 在信息技术的快速发展下,排序算法作为计算机科学中的基石,对于任何处理数据的软件系统都至关重要。这一章旨在为读者提供一个全面的概览,涵盖排序算法的基本原理及其应用场景。我们将首先介绍排序算法的核心概念,然后探讨不同类别的排序方法,包括但不限于基本排序算法和进阶排序算法。接下来,我们会深入研究每种算法的内部工作原理,通过代码示例展示其实现方式,并对其性能进行分析,从而为IT专业人士提供实用的见解和优化建议。通过这样的结构化介绍,读者将能够更好地理解和掌握排序算法,以应用于各种数据处理场景中。 阅读详情

相关推荐

手把手教你用Ubuntu Base 20.04打造轻量级ARM开发板根文件系统(附常见问题解决)

本文详细介绍了如何基于Ubuntu Base 20.04 LTS构建轻量级ARM开发板根文件系统,涵盖环境准备、镜像制作、跨架构配置、软件包定制及常见问题解决。通过实战指南,开发者可快速掌握ARM架构下的根文件系统构建技巧,优化系统性能并解决部署中的典型问题。

gin88的博客 211

七大查找算法(Java版)

七大查找算法 顺序查找、二分查找、插值查找、斐波那契查找、二叉树查找、分块查找、哈希查找

HK的博客 1万+

uniapp实战:mui-player插件如何完美适配m3u8/flv直播流(附完整代码)

本文详细介绍了如何在Uniapp中使用mui-player插件完美适配m3u8和flv直播流,提供从基础配置到高级优化的全流程解决方案。通过动态加载策略、响应式布局和内存管理,实现跨平台稳定播放,适用于企业级直播应用开发。

weixin_29001655的博客 237

day21-算法

​ 数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词,如果各位铁粉有疑惑,可以先看一下哥们后面录制的数据结构,再回头看算法。

m0_51681861的博客 513

别再凭感觉选电容了!手把手教你计算电机控制器里的母线电容(附Excel计算工具)

本文详细解析了电机控制器中母线电容的选型方法,从理论计算到工程实践,帮助工程师避免常见误区。通过精确计算纹波电压、电容容量等关键参数,并结合薄膜电容与电解电容的性能对比,提供实用的选型建议。附带的Excel计算工具可快速完成参数计算,适用于工业伺服驱动和电动车电机控制器设计。

weixin_28720573的博客 524

电路板功能测试系统-FCT for PCBA

电路板功能测试系统用于电路板组件(PCBA)的功能测试(FCT),满足自动化大批量生产的要求。  ● 用户根据自己需要定义测试步骤,灵活方便  ● 适合工业自动化大批量生产应用  ● 系统测试精度高,稳定可靠   一、电路板功能测试系统概述 电路板测试过程通常由多个步骤组成,每单个步骤中需要对多个物理量(电压、电流、电阻、频率、波形等)进行测试。在每个步骤测试时

6814

Java中的算法,7种查找算法和4种排序算法

基本思想:二叉查找树是先对待查找的数据进行生成树,确保树的左分支的值小于右分支的值,然后在就行和每个节点的父节点比较大小,查找最适合的范围。更多的是先计算出当前数据的哈希值,用哈希值跟数组的长度进行计算,计算出应存入的位置,再挂在数组的后面形成链表,如果挂的元素太多而且数组长度过长,我们也会把链表转化为红黑树,进一步提高效率。但是排序之后,会改变原有数据的顺序,查找出来元素位置跟原来的元素可能是不一样的,所以排序之后再查找只能判断当前数据是否在容器当中,返回的索引无实际的意义。因此被称为黄金分割。

2301_79350076的博客 1200

YOLOv10改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤

本文记录的是。采用深度可分离卷积将标准卷积分解为深度卷积和1×1卷积。同时,引入来,避免非线性层导致的性能下降问题。本文将应用到YOLOv10中,借助其高效的结构和特性,在保持一定精度的前提下,显著降低YOLOv10的计算复杂度和内存占用。

Limiiiing的博客 533

七大查找算法

查找就是在一个数据集合里查找到你需要的数据,查找算法就是在查找过程中使用的算法

特立独行的博客 1万+

Python爬虫实战:使用最新技术抓取采购网招标公告信息

本文将详细介绍如何使用Python最新爬虫技术构建一个高效的采购网招标公告信息抓取系统。我们将从爬虫基础概念讲起,逐步深入到高级技巧,包括异步处理、反爬虫对策、数据解析与存储等,并提供完整的代码实现。本文旨在为读者提供一套完整的网络数据采集解决方案,适用于各类政府采购平台和商业招标网站。网络爬虫(Web Crawler)是一种自动抓取互联网信息的程序或脚本,它们按照一定的规则,自动地浏览万维网并提取所需数据。在现代商业环境中,爬虫技术广泛应用于价格监控、竞争情报收集、市场研究等领域。

2201_76125261的博客 1623

飞牛fnNAS搭建私有云音乐库

本文介绍了在飞牛NAS上部署Navidrome音乐服务器的完整流程。首先创建音乐存储目录并安装Navidrome应用,然后配置管理员账号、语言设置和音乐路径。接着详细说明使用"音乐标签"软件刮削音乐元数据的方法,包括获取软件、导入音乐文件和自动匹配标签。针对远程访问需求,推荐使用ZeroTier实现内网穿透,并给出注册、创建网络及设备加入的具体步骤。最后介绍移动端使用"音流"APP连接Navidrome服务器的配置方法,实现手机端音乐播放。通过这套方案,用户可以搭建专

dgnankai的专栏 1827

python算法与数据结构-常用查找算法一(37)

一、什么是查找 查找(Searching)就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。 查找表(Search Table):由同一类型的数据元素(或记录)构成的集合 关键字(Key):数据元素中某个数据项的值,又称为键值。 主键(Primary Key):可唯一地标识某个数据元素或记录的关键字。   搜索是在一个项目集合中找到一个特定项目的算法...

weixin_30699955的博客 440

VR大空间开发前期,设备选项与流程

欢迎开发者加入 VR 大空间开发之旅!本系列教程将以 Pico 和 HTC 设备为核心,系统拆解从基础搭建到功能实现的全流程,助你快速掌握开发要点。本系列共 12 篇,专为有编程基础但缺乏大空间开发经验的开发者设计。前 7 篇针对 Pico 和 HTC 设备差异分别讲解,后续步骤通用。核心目录如下:​1. 空间环境要求 - 灯光设置 - 场地面积规划 - 识别图案设计2. 网络部署方案3. 客户端体验模式解析 - 一体机模式 - 云渲染模式 - 背包体验模式4. Pico空间录制方法

unitygroup的博客 1355

Java中常见查找算法的详细分析与比较

适用于小规模无序数据集。适用于有序数据集,时间复杂度为O(log n)。适用于均匀分布的有序数据集。适用于大型有序数据集,但数据分布不均匀。适用于关键字唯一性要求高的情况,但可能存在哈希冲突。适用于动态数据集,频繁插入和删除操作。适用于需要维持平衡性的动态数据集。适用于高效查找、插入和删除操作的大型数据集。适用于大规模数据集,频繁插入和删除操作。不同的查找算法适用于不同的场景,选择合适的查找算法可以有效提高程序的运行效率。希望本文的介绍对你在选择查找算法时有所帮助。

程序猿小样的博客 648

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

(8)《数据结构与算法》之查找算法

在java中,我们常见的查找有四种 顺序查找,也叫线性查找 二分查找,也叫折半查找 插值查找 斐波那契查找 我们将一一介绍着四种查找方式的思想以及程序的实现。 1.顺序查找 顺序查找 的查找过程为:从数组的第一个元素开始,逐个将要查找的关键字和数组中的元素进行比较,若存在相等,则返回对应的下标。反之,若至最后一个元素,其关键字和元素都不相等,则表明数组中不存在要查找的数,查找不成功 举例说明...

weixin_30622181的博客 103

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java之顺序查找

查找 介绍:在 java 中,我们常用的查找有两种: 顺序查找 SeqSearch.java 二分查找【二分法】 案例演示: 有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。 //定义一个字符串数组 String[] names = {"白眉鹰王", "金毛狮王", "紫衫龙王", "青翼蝠王"}; Scanner myScanner = new Scanner(S

兮动人 1007

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java 数组算法技巧_Java数组高级算法与Arrays类常见操作小结【排序、查找】

本文实例讲述了Java数组高级算法与Arrays类常见操作。分享给大家供大家参考,具体如下:冒泡排序冒泡排序原理冒泡排序代码:package cn.itcast_01;/** 数组排序之冒泡排序:* 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处*/public class ArrayDemo {public static void main(String[] args...

weixin_36354924的博客 187

二分查找 java_2020年Java程序员面试算法宝典附答案

2020年Java程序员面试算法宝典附答案,众所周知,算法可以说是大厂面试Java程序员的必问面试题。相信算法的重要性大家都了解,好的算法可以让性能得到万倍提升,做到毫秒级处理千万数据的程度。因此,为了提升大家在面试中的底气,跟着小编往下看: 1、算法的时间复杂度时候是什么? 答案:算法的时间复杂度表示程序运行完成所需的总时间,它通常用大O表示法来表示。2、合并k个有序(假设升序)数组...

weixin_39847034的博客 80

Java 常见集合之算法复杂度分析

在这篇博客中,我们将深入探讨 Java 常见集合相关的算法复杂度。了解算法复杂度对于我们评估集合在不同操作下的性能表现至关重要,这能帮助我们在实际开发中根据具体场景选择最合适的集合类型。

m0_57836225的博客 1108

java入门,程序=数据结构+算法

在学习java的时候,我印象最深的一句话是:程序=数据结构+算法,对于写java程序来说,这就是java的入门。

JAVA领域优质创作者,基于分片网络查询方法专利发明者。 1297

java线性插值法_081-插值查找算法工作原理

2.网上数据结构和算法的课程不少,但存在两个问题:1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了2)说是讲数据结构和算法,但大多是挂羊头卖狗肉,算法讲的很少。 本课程针对上述问题,有针对性的进行了升级3)授课方式采用图解+算法游戏的方式,让课程生动有趣好理解4)系统多面的讲解了数据结构和算法, 除常用数...

weixin_39957934的博客 302

最实用的Java数组算法,工作面试掌握这些就够了

天这篇文章是数组中的算法篇,我在这里分享几个很实用的数组算法,初级程序员工作面试掌握这些就够了,太多了也没必要。头条号“一张图学Java”分享的内容就是以实用为主,看了就会,会了就能用上,以最少的时间精力掌握最多的实用技术。获取更多源码,视频,学习资源!欢迎加入裙:616959444 J...

chengqi5276的博客 162

Java实现常见查找算法

Java实现常见查找算法,主要包括线性查找,二分查找,插值查找,斐波那契查找,哈希查找,二叉树查找

欢迎每一位朋友不吝赐教,无论是宝贵的建议还是中肯的批评,都将是我前进路上不可或缺的灯塔 1354

Java实现常见的四种查找算法

查找算法介绍 在java中,我们常用的查找有四种: 顺序(线性)查找 二分查找/折半查找 插值查找 斐波那契查找 线性查找算法 代码实现 /** * 这里我们实现的线性查找是找到一个满足条件的值,就返回 * @param arr * @param value * @return */ public static int seqSearch(int[] arr, int value) { // 线性查找是逐一比对,发现有相同值,就返回下标 for (int i = 0; i

小小小小小乐的博客 1900

[java] 常见的七大查找算法

基本思想:二叉查找树是先对待查找的数据进行生成树,确保树的左分支的值小于右分支的值,然后在就行和每个节点的父节点比较大小,查找最适合的范围。更多的是先计算出当前数据的哈希值,用哈希值跟数组的长度进行计算,计算出应存入的位置,再挂在数组的后面形成链表,如果挂的元素太多而且数组长度过长,也会把链表转化为红黑树,进一步提高效率。汲取了顺序查找和折半查找各自的优点,既有动态结构,又适于快速查找,分块查找适用于数据较多,但是数据不会发生变化的情况,如果需要一边添加一边查找,建议使用哈希查找。

2301_77946674的博客 1183

总结四种常见的查找算法

四种常见的查找算法1、顺序查找1.1、定义1.2、代码体现2、二分查找2.1、定义2.2、思路分析2.3、代码体现3、插值查找3.1、定义3.2、代码体现4、斐波那契查找4.1、定义4.2、原理4.3、代码体现 1、顺序查找 1.1、定义 顺序查找又名线性查找,是一种最简单的查找方法,它的基本思想是从第一个记录开始,逐个比较记录的关键字,直到和给定的K值相等,则查找成功;若比较结果与文件中n个记录的关键字都不等,则查找失败。 1.2、代码体现 public class SequenceSearch {

qq_42190335的博客 5188
上一篇: javascript中toString()方法
下一篇: UML图一览
anneCoder
博客等级 码龄9年 93粉丝 91原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anneCoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值