第06章 第06章 查找

序言

1. 内容介绍

本章详细介绍了查找的含义、静态查找和动态查找

2. 理论目标

  • 掌握查找的含义
  • 掌握静态查找的原理
  • 掌握动态查找的原理

3. 实践目标

  • 实现多种静态查找的底层代码和动态查找的底层代码。

4. 实践案例

5. 内容目录

  • 查找的含义
  • 静态查找
  • 动态查找

第1节 查找

1.1查找和查找表

单元案例

完成学生信息的查找
根据编号、姓名、成绩,查找学生信息

什么是查找

定义:查找是找出与给定值匹配的关键字的操作按照查找方式分为(静态查找、动态查找)

什么是查找表

什么是查找表

定义:查找表是同一类型的数据元素构成的集合

1.2 为什么使用静态查找表

正在上传…重新上传取消  

什么是静态查找表

定义: 静态查找表是查找特定元素的查找表

为什么需要查找算法

  

什么是查找算法

定义:查找算法是使序列按照要求查找的算法

按照查找方式分类(顺序查找、折半查找、插值查找)

1.3关键字

为什么使用关键字

内容小结

什么是查找?查找的方式有几种?
什么是查找算法?
什么是查找表?查找表的外延?
什么是静态查找表?

第2节 顺序查找

2.1 为什么需要顺序查找

2.2 如何实现顺序查找

  

顺序查找的应用

  

顺序查找的平均查找长度

   

2.3 如何优化顺序查找算法

顺序查找的优化的原理

案例需求
模仿示例,完成顺序表的查找

案例要求
设置“哨兵位”
优化顺序查找的算法实现

顺序查找的特点

内容小结

什么是顺序查找?
顺序查找的执行过程?
顺序查找的特点是什么?
顺序查找优化算法的执行过程?

第3节 折半查找

3.1 什么是折半查找

为什么使用折半查找

3.2什么是折半查找

定义:折半查找是在顺序存储的有序数列中,通过逐次减半查询范围,
查找某特定元素的查找算法
特点:
1、元素有序排列
2、顺序存储
3、查找范围每次缩小一半

如何实现折半查找

折半查找的工作原理
折半查找又称为二分查找
折半查找的条件是查找表必须是有序的

    

折半查找的应用

    

折半查找算法的特点

3.3 顺序查找与折半查找的比较

内容小结

什么是折半查找?
折半查找的实现原理?
折半查找的平均查找长度?

思路分析
定义结构体保存学生的属性
定义结构体数组存储学生信息

       

第4节 动态查找

知识回顾

什么是查找?

什么是查找表?

什么是静态查找表?

什么是折半查找?

4.1 为什么使用动态查找表

4.2 什么是动态查找表

定义:是在查找过程中进行插入或删除元素的查找表

动态查找表的应用

为什么使用二叉排序树

什么是二叉排序树

定义:是树中任意结点符合左值小于根,右值大于根的二叉树

二叉排序树的应用

  

二叉排序树的作用

第5节 二叉排序树

4.1 如何创建二叉排序树

创建二叉排序树的过程:

第一步:从空树出发,将第1个键值作为二叉排序树的根
第二步:将第2个键值与根比较,若<根,插入到左子树中;
否则插入到右子树中;
第三步:找到父结点,将被插结点作为叶子结点插入。
经过一系列的查找插入操作,可以生成一棵二叉排序树

4.2 二叉排序树创建的代码实现

4.3 创建二叉排序树的应用

     

4.4 如何查找二叉排序树

在二叉排序树上进行查找的基本思路:
若二叉排序树为空树,则查找失败
若二叉排序树不空:
将给定值key==根值,则查找成功
若给定值key>根值,则到右子树查找
若给定值key<根值,则到左子树查找

在如下二叉排序树中查找指定关键字的过程

查找二叉排序树的应用

二叉排序树查找性能分析

    

第6节 二叉排序树的删除

知识回顾

6.1 如何实现二叉排序树删除

可分三种情况讨论:

(1)被删除的结点是叶子;

(2)被删除的结点只有左子树或者只有右子树;

(3)被删除的结点既有左子树,也有右子树。

     

6.2 二叉排序树删除的代码实现

       

6.3 课堂编程练习

         

开始实验

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

撸码的xiao摩羯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值