当前位置: 首页 > news >正文

数据结构与算法(test3)

七、查找

1. 看图填空

查找表是由同一类型的数据元素(或记录)构成的集合。例如上图就是一个查找表。

期中(1)是______________. (2)是______________(3)是_____关键字_______。

2. 查找(Searching) 就是根据给定的某个值, 在查找表中确定一个其____________等于给定值的_______________。

3. 列出常见的三种查找算法:______________、______________、______________。

4. ___________又叫线性查找, 是最基本的查找技术,它的查找过程是: 从表中第一个(或最后1个)记录开始,

逐个进行记录的_________与给定值比较,一直到找到相等的记录,它的时间复杂度是_____________。

它对表中记录是否有序___________(有 / 没有)要求。

5. ___________又称为二分查找,它的前提是线性表中的记录必须是________________, 线性表必须采用__________存储。它的时间复杂度是_____________。

6. ___________查找,是把数据集的记录分成若干块,并且这些块需要满足两个条件:

(1). 块内的记录特点:____________________________________。

(2). 块间的记录特点:____________________________________。

7. 二叉排序树,又称为二叉查找树,它或者是一棵空树,或者是具有下列性质:

(1). 若它的左子树不空, 则左子树上所有结点的值均小于它的_____结点的值。

(2). 若它的右子树不空, 则右子树上所有结点的值均大于它的_____结点的值。

(3). 它的左、右子树也分别为_________树。

它的时间复杂度是________________.

8. 二叉排序树是以____________方式存储,这种存储结构在执行插入、删除时不用移动元素的优点。找到合适的插入、删除位置后,仅需要修改__________即可。

9. 散列技术是在记录的_________和它的__________之间建立一个确定的对应关系f, 使得每个_________对应一个存储位置f(key)。

查找时,根据这个确定的对应关系找到给定值key的映射 f(key), 若查找集合中存在这个记录,则必定在f(key)的位置上。

这里我们把对应关系f 称为_________函数,又称为______函数。

采用散列技术将记录存储在一块地址___________的存储空间中,这块连续的存储空间称为______表或_____表。关键字对应的记录位置我们称为_______地址。


10. 散列技术即是一种存储方法,也是一种查找方法,它的时间复杂度是________________。

11. 散列表查找,如果没有冲突,它的效率很高,它的时间复杂度是________。可惜,没有冲突的散列只是一种理想,在实际的应用中,冲突不可避免的,他平均查找性能,取决于以下3个因素。

(1) 散列函数的好坏直接影响着出现冲突的频繁程度,它的主要指标是_______________。

(2)处理冲突的方法____________________。

(3) 散列表的装填因子。请解释装填因子是什么_____________________________________。

12. 给定一个长度为n的整形数组 int data[n], 其该数组数据,以按从小到大排序。请用折半查找法

完成以下函数:  如果查找到目标数据target,则返回所在位置的数组下标,否则返回-1.

int findIndex(int data[], int size, int target)

{

}


 

http://www.lryc.cn/news/534400.html

相关文章:

  • 基于Python的人工智能驱动基因组变异算法:设计与应用(下)
  • C++ 顺序表
  • Mac(m1)本地部署deepseek-R1模型
  • Docker 部署 redis | 国内阿里镜像
  • 48V电气架构全面科普和解析:下一代智能电动汽车核心驱动
  • 滤波器截止频率的计算
  • 服务器绑定 127.0.0.1 和 0.0.0.0 的区别
  • DeepSeek提示词手册
  • 校园网规划方案
  • python怎么求 一个数是否包含3
  • ARM RFEIA指令作用
  • 【Kubernetes】常用命令全解析:从入门到实战(上)
  • 项目实战(11)-双通道气体压力计V1.0
  • Node.js怎么调用到打包的python文件呢
  • Transformer 详解:了解 GPT、BERT 和 T5 背后的模型
  • 利用二分法进行 SQL 盲注
  • 如何通过 bugreport 分析 Android 系统日志?
  • 安防机器人电源解决方案
  • 内网穿透的应用-Ubuntu本地Docker搭建pichome文件管理系统打造个人云相册
  • 力扣-栈与队列-1047 删除字符串中的所有相邻重复项
  • 旅客服务系统(PSS, Passenger Service System)
  • Linux路径中的‘~‘
  • 认识网络安全
  • 信息科技伦理与道德3-3:智能决策
  • 以 Python 为工具搭建的热门旅游景点数据分析系统
  • ZooKeeper 技术全解:概念、功能、文件系统与主从同步
  • Visual Studio Code 的 AI 编程助手
  • Kafka的ISR是什么,HW是什么,怎么保证可靠性,Kafka怎么实现顺序消息?为什么Kafka的broker上的topic越多,效率越慢?
  • Ollama系列---【ollama使用gpu运行大模型】
  • 使用C语言实现MySQL数据库的增删改查操作指南