序言
1. 内容介绍
本章详细介绍了查找的含义、静态查找和动态查找
2. 理论目标
- 掌握查找的含义
- 掌握静态查找的原理
- 掌握动态查找的原理
3. 实践目标
- 实现多种静态查找的底层代码和动态查找的底层代码。
4. 实践案例
无
5. 内容目录
- 查找的含义
- 静态查找
- 动态查找
第1节 查找
单元案例
完成学生信息的查找
根据编号、姓名、成绩,查找学生信息
什么是查找
定义:查找是找出与给定值匹配的关键字的操作按照查找方式分为(静态查找、动态查找)
什么是查找表
什么是查找表
定义:查找表是同一类型的数据元素构成的集合
正在上传…重新上传取消
什么是静态查找表
定义: 静态查找表是查找特定元素的查找表
为什么需要查找算法
什么是查找算法
定义:查找算法是使序列按照要求查找的算法
按照查找方式分类(顺序查找、折半查找、插值查找)
为什么使用关键字
内容小结
什么是查找?查找的方式有几种?
什么是查找算法?
什么是查找表?查找表的外延?
什么是静态查找表?
第2节 顺序查找
顺序查找的应用
顺序查找的平均查找长度
顺序查找的优化的原理
案例需求
模仿示例,完成顺序表的查找
案例要求
设置“哨兵位”
优化顺序查找的算法实现
顺序查找的特点
内容小结
什么是顺序查找?
顺序查找的执行过程?
顺序查找的特点是什么?
顺序查找优化算法的执行过程?
第3节 折半查找
为什么使用折半查找
定义:折半查找是在顺序存储的有序数列中,通过逐次减半查询范围,
查找某特定元素的查找算法
特点:
1、元素有序排列
2、顺序存储
3、查找范围每次缩小一半
如何实现折半查找
折半查找的工作原理
折半查找又称为二分查找
折半查找的条件是查找表必须是有序的
折半查找的应用
折半查找算法的特点
内容小结
什么是折半查找?
折半查找的实现原理?
折半查找的平均查找长度?
思路分析
定义结构体保存学生的属性
定义结构体数组存储学生信息
第4节 动态查找
知识回顾
什么是查找?
什么是查找表?
什么是静态查找表?
什么是折半查找?
定义:是在查找过程中进行插入或删除元素的查找表
动态查找表的应用
为什么使用二叉排序树
什么是二叉排序树
定义:是树中任意结点符合左值小于根,右值大于根的二叉树
二叉排序树的应用
二叉排序树的作用
第5节 二叉排序树
创建二叉排序树的过程:
第一步:从空树出发,将第1个键值作为二叉排序树的根
第二步:将第2个键值与根比较,若<根,插入到左子树中;
否则插入到右子树中;
第三步:找到父结点,将被插结点作为叶子结点插入。
经过一系列的查找插入操作,可以生成一棵二叉排序树
在二叉排序树上进行查找的基本思路:
若二叉排序树为空树,则查找失败
若二叉排序树不空:
将给定值key==根值,则查找成功
若给定值key>根值,则到右子树查找
若给定值key<根值,则到左子树查找
在如下二叉排序树中查找指定关键字的过程
查找二叉排序树的应用
二叉排序树查找性能分析
第6节 二叉排序树的删除
知识回顾
可分三种情况讨论:
(1)被删除的结点是叶子;
(2)被删除的结点只有左子树或者只有右子树;
(3)被删除的结点既有左子树,也有右子树。
开始实验