黑马程序员——Java基础查找算法:顺序查找和二分查找

查找算法:二分查找、顺序查找 查找算法:二分查找、顺序查找的实现 参见博客:http://blog.youkuaiyun.com/xiaowei_cqu/article/details/7748260 立即下载

——- android培训、java培训、期待与您交流! ———-
/*
需求:在数组中查找指定的数据
一、顺序查找法思路:
遍历整个数组,将指定要找的数与数组中的所有元素比较,如果相同则返回下标,没有找到返回-1
*/

public static int shunXu(int x, int[] arr)
    {
        for(int i =  1;i <arr.length;i++)
        {
            if(x == arr[i])
                return i;
        }
        return -1;        
    }

二、折半查找法思路:
1.取出数组元素的开始、结束和中间元素的下标。
2.循环比较中间元素和要查找数据的大小如果查找的数据大于中间元素,表示又查找的数
据不可能在前边段,将开始元素下标设为中间元素的下一位,缩短查询范围;如果查找的
数据小于中间元素,将结束元素下标设为中间元素的前一位。如果开始元素下标大于结束
元素下标时还未找到目标元素,表示数组中没有该元素。
步骤:
1.定义三个变量用于存储数组元素的开始、结束和中间元素的下标。
2.使用while循环语句,通过变化开始或者结束元素下标,寻找与目标数据相同的元素,
循环控制条件是:开始元素下标小于结束元素下标。
3.如果查找的数据等于中间元素,返回中间元素的下标;如果查找的数据大于中间元素,
将开始元素下标设为中间元素的下一位;如果查找的数据小于中间元素,将结束元素下
标设为中间元素的前一位。
4.跳出循环的话,表示数组中没有该元素,返回-1

public static int erFen( int x, int[] arr)
    {
        int low = 0;
        int high = arr.length-1;//最后一个元素的下标
        int mid = (low+high)/2;
        while(low<=high)
        {
            if(x == arr[mid])
                return mid;
            else if (x < arr[mid])
                high = mid-1;  //去掉后半截
            else if(x > arr[mid])
                low = mid+1; //去掉前半截
        }
        return -1;   //数组中没有该元素
    }

三、验证代码

class ChaZhao 
{
    public static void main(String[] args) 
    {
        int[] col = {5,52,23,2,8,95,30};
        daYin(col);   
        //使用冒泡排序法排序
        bubbleSort(col);
        System.out.println("--------------------------------");
        daYin(col);   
        int key = shunXu(52,col)+1;
        System.out.println("52是数组col第"+key+"个元素");
    }
        //冒泡排序法
    public static void bubbleSort(int[] arr)
    {
        for(int i = 1;i < arr.length ;i++)
        {
            for(int j = 0; j < arr.length-i; j++)
            {
                if(arr[j] > arr[j+1])
                {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
}

结果如下图
这里写图片描述

——- android培训、java培训、期待与您交流! ———-

Java经典算法汇总之顺序查找(Sequential Search) Java查找算法之顺序查找说明:顺序查找适合于存储结构为顺序存储或链接存储的线性表。 下面我们来详细说明下 立即下载

相关推荐

深入解析Gerber RS274X文件格式:从基础语法到实战应用

本文深入解析PCB制造的核心标准Gerber RS274X文件格式,详细介绍了其基础语法、坐标系统、功能码以及嵌入式光圈定义等关键特性。通过实战案例演示了如何解析和手写Gerber指令,并总结了常见错误与调试技巧,帮助PCB工程师掌握这一与制造工厂沟通的“通用语言”,确保设计准确无误地转化为实体电路板。

weixin_29252171的博客 95

java 查找算法

查找算法 顺序查找 二分查找 插值查找 斐波那契查找 树表查找 分块查找 哈希查找

杨宇昌的博客 831

PaddleOCR GPU部署:从环境配置到避坑实战指南

本文详细介绍了PaddleOCR GPU部署的全过程,从环境配置到避坑实战指南。通过分析常见的部署失败原因,提供硬件兼容性自查、软件环境精配方案以及路径配置的解决方案,帮助用户高效完成GPU加速的OCR任务部署,避免90%的常见错误。

weixin_30839881的博客 419

JAVA 基础算法(查找、排序)

插入排序算法:是基于某序列已经有序排列的情况下,通过一次插入一个元素的方式按照原有排序方式增加元素。

2301_78584353的博客 414

PCIe学习笔记(一)-------1.3 PCIe数据包(TLP,DLLP,PLP)

1,PCIe的层次结构 PICe设备在硬件电路上可以分为三个层次结构:事务层(Transaction Layer)、数据链路层(Data Link Layer)、物理层(Physical)。每一个层次又可以分为两个部分,分别为处理发送和处理接收的部分。 也可以分为四个层次,将事务层以上的层次称为软件层(Software Layer)。 2,PCIe数据包 前面已经说过PCIe之间是以数据包的形式来传输数据的,协议共定义了3类数据包。与处理层相关的是处理层数据包(TLP),与数据链路层相关的是数据

llxxyy507的博客 2万+

Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题

本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。

weixin_29297127的博客 520

顺序查找和二分查找算法多种编程语言实现(修订)

查找,也可称检索,是在多个信息中寻找一个特定的信息元素,在此介绍顺序查找和二分查找算法的多种编程语言实现。给出C++代码、Java代码、Python代码和JavaScript代码。

cnds123的专栏 829

TDDFT计算软件Octopus学习笔记(二):基态计算(Si)

本文以硅为例,来进行基态计算。

陈啸的博客 7308

顺序查找 & 二分查找

顺序查找 适用范围: 没有进行排序的数据序列 缺点: 速度非常慢, 效率为O(N) [cpp] view plain copy 在CODE上查看代码片派生到我的代码片 //实现   template   Type *sequenceSearch(Type *begin, Type *end, const Type &searchValue)  

344

《从底层结构开始学习FPGA》目录与传送门

《从底层结构开始学习FPGA》目录与传送门

孤独的单刀 16万+

利用人工神经网络在Abaqus中实现本构模型的网格粗化计算框架:详细指南与实践

在这篇文章中,我们详细介绍了如何在Abaqus中实现基于人工神经网络(ANN)的本构模型以进行网格粗化的计算框架。我们通过两个主要模块——数据生成器模块和ANN训练模块,实现了这一计算框架,并将训练好的ANN集成到Abaqus的用户材料子程序(UMAT)中,创建了一个基于ANN的本构模型。我希望这篇文章能帮助到那些希望在Abaqus中实现基于ANN的本构模型的读者,同时,我也非常欢迎大家提出宝贵的意见和建议,让我们共同进步。

qq_38334677的博客 1716

java 顺序查找

通过键盘输入一组数据,输入要查找的数字,实现顺序查找。

m0_63796298的博客 144

【DeepSeek实战】1、DeepSeek民用级开发全指南:从0到1掌握AI应用开发与模型蒸馏实战

DeepSeek创新性地打破了传统AI开发的技术壁垒,通过双模型架构(DeepSeek-V3和R1)实现普惠化与专业化并重。其核心优势包括:零代码操作、浏览器直接使用、中文提示词控制及低成本(2元/百万token)。用户通过简单三步(注册-配置-使用)即可快速开启AI之旅,平台提供$50免费额度支持2个月高频使用。 四大核心应用场景: 办公自动化:周报撰写、PPT生成、数据分析一键完成 内容创作:提供爆款标题生成、垂直领域写作模板 学习辅助:支持文档解析、错题讲解、知识图谱构建 生活服务:个性化行程规划

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1735

算法:二分查找算法

在二分查找过程中,首先确定数据集的中间元素,然后将目标元素与中间元素进行比较。如果目标元素等于中间元素,则查找成功;如果目标元素小于中间元素,则在数据集的前半部分继续查找;如果目标元素大于中间元素,则在数据集的后半部分继续查找。 通过不断地将查找范围缩小一半,最终可以在较短的时间内找到目标元素或确定目标元素不存在于数据集中。二分查找的时间复杂度为O(log n),其中n为数据集中元素的数量。

Pretty_TokaiTeio的博客 272

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

WINCC7.3破解文件

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

黑马程序员java基础---算法

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

2301_78736072的博客 226

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

大厂AI必备数据结构与算法——基础算法之二叉搜索树(十一)详细文档

查找算法是一种在数据集中寻找特定数据项的方法。通常,数据集是在计算机程序中存储的,例如数组、链表或散列表。在编写程序时,查找算法是非常重要的,它有助于快速找到所需的数据。在本文中,我们将介绍一些基本的查找算法及其特点。二叉搜索树最早是由Bernoulli兄弟在18世纪中提出的,但是真正推广和应用该数据结构的是1960年代的D.L. Gries。他的著作《The Science of Programming》中详细介绍了二叉搜索树的实现和应用。

程序员-杨胡广的博客 1209

黑马程序员Java笔记

输出打印、参与运算、修改记录的值。

m0_68735537的博客 4475

黑马程序员_java中的几种查找方法

1.顺序查找 顺序查找方法比较简单,就是遍历整个数组进行判断。 class search { public static void main(String[] args) { int [] arr={1,4,2,6,8,5}; int number=4; int index=getIndex(arr,number); System.out.print(index);

u014214523的专栏 1885

Java 黑马程序员学习笔记(进阶篇9)

类,用于存储每个块的关键信息:块的最大值(max)、块的起始索引(startIndex)、块的结束索引(endIndex),并提供必要的构造方法和 getter 方法。,每一轮排序都会将当前未排序区间的 “最大值” 通过多次交换,移动到未排序区间的末尾,如同水中的气泡逐渐上浮(小值靠前)、大值沉底(大值靠后),因此得名 “冒泡”。—— 把无序的大数据表,拆成若干个 “块”,满足 “块内无序、块间有序” 的规则,再通过 “索引表” 快速定位目标所在的块,最后在块内查找目标。的查找算法,核心思路是。

2302_79807388的博客 786

黑马《数据结构与算法2023版》正式发布

要论开发技术哪家强,可谓众说纷纭。但长久以来,确有一技,堪称技术江湖的“易筋经”,略知一二的人很多,出类拔萃、登峰造极的人很少......江湖人称——数据结构与算法。

技术专家 2070

【查找算法系列】分块查找

分块查找,也称为块搜索或索引-顺序搜索,是一种常见的查找算法,主要用于在已排序的数据块或块中快速定位目标元素。它结合了顺序查找和二分查找的优点,并使得在大规模数据集中进行查找更加高效。

kuxiaoyang的博客 2479

常见算法、Arrays、Lambda表达式-Java入门-黑马程序员2022年新视频DAY21笔记

常见算法、Arrays、Lambda表达式

weixin_56633661的博客 388

黑马程序员____顺序查找算法

----------------------android培训、java培训、期待与您交流! ----------------------           顺序查找(Sequential Search)也称线性查找(Liner  Search)是最为简单的查找算法形式,当然,它的查找效率也是最低的。从开始元素起,它按顺序的方式依次检查每个元素,直到找到要查找的元素或到

handawnc的专栏 859

【java】Java基础学习总结(b站黑马程序员课程)

自身学习代码(详细代码请关注黑马程序员领取)

BokerGotii的博客 2062

黑马程序员____折半查找算法

----------------------android培训、java培训、期待与您交流! ----------------------             折半查找( Binary Search)是查找有序序列的标准过程,比顺序查找有效得多,但它需要元素是有序的。它把查找序列平均分成两半,如划分点元素不是我们所要查找的元素,则在有可能包含查找元素的子序列中查找,重

handawnc的专栏 877

黑马程序员__java基础视频day3、day4

---------------------- android培训、java培训、期待与您交流! ----------------------  看前两天的视频的时候还觉得游刃有余呢,都是快进看的。但是看完这两天的觉得内容有点多啊,特别是第四天的进制转换部分,也许是用的比较少吧,我感觉听起来有点吃力。接受倒是还能接受就是要我写出来代码的话就会有点困难了。     第三天的循环和函数对我来说还算是

lisi0221的专栏 9370
上一篇: 黑马程序员——java基础排序算法:选择排序、冒泡排序和插入排序
下一篇: 黑马程序员——Java基础:进制变换
java888kankan
博客等级 码龄12年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值