数据结构学习笔记(Ⅶ):查找

news2024/11/25 16:48:24

目录

1 查找

1.1 定义

1.2 查找操作

1.3 算法评价指标

2 查找算法

2.1 顺序查找

1.算法思想

 2.实现

3.查找效率

4.算法优化

2.2 折半查找

1.算法思想

2.算法实现

3.查找判定树

4.折半查找效率

2.3 分块查找

1.算法思想

2.查找效率分析

3 B树

3.1 B树概念

3.2 B树的插入删除

1.插入

2.删除

3.3 B+树

1.定义

2.查找

3.与B树对比

4 散列查找

4.1 散列查找(上)

1.散列表

2.查找 

3.散列函数

4.2 散列查找(下)

1.开放定址法

2.再散列法


1 查找

1.1 定义

查找——在数据集合中寻找满足某种条件的数据元素的过程称为查找
查找表(查找结构)——用于查找的数据集合称为查找表,它由同一类型的数据元素(或记录)组成

关键字——数据元素中唯一标识该元素的某个数据项的值,使用基于关键字的查找,查找结果应该是唯一的

1.2 查找操作


只需查找符合条件的数据元素的操作为静态查找表;同时需要进行插入、删除数据元素的操作为动态查找表

1.3 算法评价指标

查找长度——在查找运算中,需要对比关键字的次数称为查找长度
平均查找长度(ASL, Average Search Length)——所有查找过程中进行关键字的比较次数的平均值


2 查找算法

2.1 顺序查找

1.算法思想

顺序查找又称线性查找,通常用于线性表。其思想即从头到尾(或逆向)查找

 2.实现

3.查找效率

时间复杂度O(n)

4.算法优化

 对于有序表,可以利用查找判定树进行关键字对比。

若被查找概率不相等,被查概率大的可以放在靠前位置。

2.2 折半查找

1.算法思想

仅适用于有序的顺序表,即二分法 

2.算法实现

3.查找判定树

 折半查找判定树一定是平衡二叉树,只有底层是不满的。

失败结点等于n+1

4.折半查找效率

 查找成功与失败的ASL <= h

2.3 分块查找

1.算法思想

2.查找效率分析

3 B树

3.1 B树概念

 为了保证m叉查找树的查找效率,规定除了根节点外,任何结点至少要[m/2]个分叉,即至少[m/2]-1个关键字;对于任何一个结点,其所有子树高度相同。 

3.2 B树的插入删除

1.插入

2.删除

3.3 B+树

1.定义

2.查找

·根结点开始逐层查找

·顺序查找

3.与B树对比

4 散列查找

4.1 散列查找(上)

1.散列表

散列表(Hash Table),又称哈希表。是一种数据结构,特点是︰数据元素的关键字与其存储地址直接相关。通过哈希函数实现其映射关系。 
若不同的关键字通过散列函数映射到同一个值,则称它们为“同义词”

通过散列函数确定的位置已经存放了其他元素,则称这种情况为“冲突”
用链接法处理冲突:将所有同义词存储在一个链表中

2.查找 

查找关键字后查找其链表内容 

装填因子α  = 表中记录数/散列表长度

3.散列函数

4.2 散列查找(下)

1.开放定址法

2.再散列法

 

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

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

相关文章

Java#30(扩展知识:可变参数与Collections)

目录 一.可变参数 二.Collections 1.Collections常用的API 一.可变参数 本质: 可变参数本质上是一个数组 作用: 在形参中接收多个数据 格式: 数据类型...参数名称 例如: int...a 代码示范: package Demo;public class Test {public static void main(String[] args) {int s…

单目标优化:蜣螂优化算法(Dung beetle optimizer,DBO)

蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。 一、蜣螂优化算法 1.1蜣螂滚球 &#xff08;1&#xff09;当蜣螂前行无障碍时…

redis基础3——配置文件核心参数实测+RDB持久化、AOF持久化核心参数详解

文章目录一、redis.conf配置文件详解1.1 查看配置文件位置1.2 启动需指定配置文件1.3 单位大小写不敏感1.4 引用其他配置文件&#xff08;包含&#xff09;1.4.1 测试参数存放前后位置1.4.1.1 反例1.4.1.2 正例1.4.2 测试引用参数有效性1.5 网络相关1.5.1 绑定IP1.5.2 保护模式…

全球领先飞瞳引擎™云服务全球两千+企业用户,集装箱识别集装箱箱况残损检测,正常箱号识别率99.98%以上,箱信息识别及铅封识别免费

全球领先飞瞳引擎™AI集装箱识别检测云服务全球两千企业用户&#xff0c;集装箱识别集装箱箱况残损检测&#xff0c;正常箱号识别率99.98%以上&#xff0c;箱信息识别及铅封识别免费。CIMCAI中集飞瞳是全球应用落地最广&#xff0c;规模最大&#xff0c;最先进的的港航人工智能…

链游新发展方向:告别高强度打金,回归游戏本质

2022 年伊始&#xff0c;加密领域最瞩目的项目要属区块链游戏了。随着 Axie Infinity、Genopets 和 Perion 等公司大获成功&#xff0c;区块链游戏生态系统逐渐进入主流圈。值得一提的是&#xff0c;游戏和 NFT 这两个备受关注的类别在 Web 3 世界中互相成就&#xff0c;创造出…

【简单总结】SLAM 算法的 Benchmark 及相关数据集的结果对比

前言与参考 主要是copy一下总结&#xff0c;方便自己后续找方案特定使用&#xff0c;所有的出处均在标题处和原链接跳转&#xff0c;此处仅做各个benchmark收集使用&#xff0c;如果有原作者觉得侵权&#xff0c;请联系我 将全力配合相关内容和链接删除 如果网友有其他更新的…

代码随想录刷题day51 309.最佳买卖股票时机含冷冻期;714.买卖股票的最佳时机含手续费

代码随想录刷题day51 309.最佳买卖股票时机含冷冻期&#xff1b;714.买卖股票的最佳时机含手续费 股票买卖&#xff0c;前两天的有点忘了正好也复习一下。 309.最佳买卖股票时机含冷冻期 309. 最佳买卖股票时机含冷冻期 - 力扣&#xff08;Leetcode&#xff09; 不是很好优…

Java---SpringBoot---SpringBoot

SpringBoot1&#xff0c;SpringBoot简介1.1 SpringBoot快速入门1.1.1 开发步骤1.1.1.1 创建新模块1.1.1.2 创建 Controller1.1.1.3 启动服务器1.1.1.4 进行测试1.1.2 对比1.1.3 官网构建工程1.1.3.1 进入SpringBoot官网1.1.3.2 选择依赖1.1.3.3 生成工程1.1.4 SpringBoot工程快…

尚医通-预约下单中rabbitmq的使用

需求描述 在挂号界面选择完需要挂号的医生和排版后&#xff0c;添加就诊人&#xff0c;确认挂号 附上业务流程图 技术分析 我们今天主要来看看这块 mq 的运用&#xff0c;也是一个思考&#xff0c;我还是挑着重要的来讲&#xff0c;这里讲讲我们这里怎么使用 mq 的 这里会用…

关于λ-optimal的初始化解算法在(元)启发式中的应用

关于λ-optimal算法在启发式中初始化解的应用TSP问题介绍λ-optimal定理与定义算法描述与伪代码算法的优化参考文献这里讨论组合优化中初始解的生成问题。组合优化问题&#xff0c;很多情况下&#xff0c;解的生成是随机的或者是采用某种直观上满足题意的初始化方法&#xff0c…

12月1日(第三天)

四舍五入 Math.round()整形 字符串输出字符串&#xff0c;加字符则输出整形if else if&#xff0c;是互斥关系&#xff0c;同时满足条件&#xff0c;只会被执行前面那个&#xff0c;if if&#xff0c;是并列的关系&#xff0c;条件满足都会执行ORACLE中的操作&#xff08;来自…

使用SpringBoot将图片上传至阿里云OSS

一. 对象存储OSS 1. 什么是OSS? 官方的解释是这样的&#xff1a;阿里云对象存储OSS&#xff08;Object Storage Service&#xff09;是一款海量、安全、低成本、高可靠的云存储服务&#xff0c;提供99.9999999999%(12个9)的数据持久性&#xff0c;99.995%的数据可用性。 官网…

我开发的开源项目,让.NET7中的EFCore更轻松地使用强类型Id

在领域驱动设计&#xff08;DDD&#xff09;中&#xff0c;有一个非常重要的概念&#xff1a;“强类型Id”。使用强类型Id来做标识属性的类型会比用int、Guid等通用类型能带来更多的好处。比如有一个根据根据Id删除用户的方法的签名如下&#xff1a; void RemoveById(long id)…

【毕业设计】9-基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿真工程+论文+PPT+参考英文文献)

毕业设计】基于STM32无刷直流电机控制器的设计仿真与实现&#xff08;原理图源码仿真工程论文PPT参考英文文献&#xff09; 文章目录毕业设计】基于STM32无刷直流电机控制器的设计仿真与实现&#xff08;原理图源码仿真工程论文PPT参考英文文献&#xff09;任务书设计说明书摘要…

能迪科技智能控制系统对中央空调进行精准、单独调控医院案例

案例背景​ 梅州市妇女儿童医院新院区&#xff08;以下简称“新院区”&#xff09;是省、市重点项目工程&#xff0c;建设地点位于江南新城客都大道北侧&#xff0c;一期项目总投资4.8亿元&#xff0c;占地面积50亩&#xff0c;总建筑面积87000平方米&#xff0c;按照三级妇幼保…

blender cycles引擎

文章目录简介属性一 Scene采样二 光程最多反弹次数钳制焦散快速GI近似三 体积步进速率四 曲线简介 1 cycles与EV的区别在于cy是传统渲染引擎&#xff0c;效果好&#xff0c;速度慢&#xff0c;ev是实时引擎&#xff0c;速度快&#xff0c;效果差 2 切换渲染引擎&#xff0c;属…

基于51单片机智能IC卡水表控制系统(仿真+源程序+全套资料)

资料编号&#xff1a;200 功能介绍&#xff1a; 采用51单片机作为主控CPU&#xff0c;使用按键进行模拟冲卡&#xff08;模拟缴费冲卡&#xff09;&#xff0c;通过按键来控制当前是否使用自来水&#xff0c;并且LCD1602实时显示当前自来水可用量剩余多少&#xff0c;当自来水…

GhMYB7促进棉纤维中次生壁纤维素的积累

文章信息 题目&#xff1a;GhMYB7 promotes secondary wall cellulose deposition in cotton fibres by regulating GhCesA gene expression through three distinct cis-elements 刊名&#xff1a;New Phytologist 作者&#xff1a;Junfeng Huang&#xff0c;Wenliang Xu e…

图文详解Linux基础经典教程(10)——阿里云安装开发工具

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 概述 之前&#xff0c;我们已经介绍在本地CentOS上安装JDK、Tomcat、MySQL等开发工具。接下来&#xff0c;我们介绍在阿里云安装这些开发工具。 购买阿里云 请在阿里云 h…

自然语言处理NLP——ERNIE-M:基于回译机制的“预训练-微调”多语言模型

目录 系列文章目录 一、背景介绍 1.多语言任务 1.1 多语言任务定义 1.2 多语言任务难题 2.多语言模型 2.1 多语言模型定义与原理 2.2 多语言模型困难 3.论文简介 3.1 背景与开发动机 3.2 论文梗概 3.3 论文贡献与成就 二、相关工作 1.预训练方法 1.1 预训练方法…