第七章 查找

1. 顺序查找的性能分析

空间复杂度:一个辅助空间O(1)

时间复杂度:O(n)

平均查找长度:查找成功时的平均查找长度

设表中各记录查找概率相等

ASL=(1+2+ ... +n)/n =(n+1)/2

查找不成功时的平均查找长度:ASL=n+1

顺序查找算法的特点

优点:算法简单,对表结构无任何要求,既适用于顺序结构,也适用于链式结构,无论记录是否按关键字有序均可应用。

缺点:平均查找长度较大,查找效率较低

当n很大时,不宜采用顺序查找

2. 折半查找性能分析

具有n个结点的折半查找判定树的深度为

平均查找长度:  ASL≈log2(n+1)+1

折半查找算法的优缺点

优点:比较次数少,查找速度快

缺点:要求表有序,且顺序存储,记录按关键字递增有序

适用:不经常变动且查找频繁的有序表

3. 分块查找(索引顺序查找):块内无序,块间有序

每个子块中的关键字都比后一块中的关键字小(但子表内部未必有序)

4. 二叉排序树

5. 中序遍历二叉排序树后:得到一个关键字递增的有序序列

6. 不同插入次序的序列生成不同形态的二叉排序树

7. 二叉排序树的平均查找长度ASL与二叉排序树的形态有关,二叉排序树的各分支越均衡,树的深度越浅,其平均查找长度ASL越小。

8. 二叉排序树的查找性能分析

9. 平衡二叉树(AVL树):任一结点的平衡因子只能取:-1、0 或 1

10. 对于一棵有n个结点的AVL树,其高度保持在O(log2n)数量级,ASL也保持在O(log2n)量级。

11. 最小不平衡子树:在平衡二叉树的构造过程中,以距离插入结点最近的、且平衡因子的绝对值大于1的结点为根的子树。

12. 重要结论

(1)当平衡的二叉排序树因插入结点而失去平衡时,仅需对最小不平衡子树进行平衡处理即可。

(2)平衡处理的关键是识别不平衡树是AB型还是ABC型。

(3)由于经过旋转处理后的子树深度和插入之前相同,因而不影响插入路径上所有祖先结点的平衡。

13. B-:m阶;

树中每个结点至多有m棵子树;

若根结点不是叶子结点,则至少有两棵子树;

除根之外的所有非终端结点至少有 m/2棵子树;

所有非终端结点最多有m-1个关键字

14. B-树的特点:平衡、有序、多路

15. B-树的查找、插入、删除。

16. B+树:

每个叶子结点中含有 n 个关键字和n 个指向记录的指针;

所有叶子结点彼此相链接构成一个有序链表,

其头指针指向含最小关键字的结点;

每个非叶结点中的关键字Ki即为其相应指针Ai所指子树中关键字的最大值;

所有叶子结点都处在同一层次上;

每个叶子结点中关键字的个数均介于 m/2和 m 之间。

17. 散列表的基本思想:在记录的存储地址和它的关键字之间建立一个确定的对应关系;这样,不经过比较,一次存取就能得到所查元素。

查找速度极快O(1),查找效率与元素个数n无关

18. 散列查找又称哈希查找,利用散列函数进行查找的过程

19. 冲突是不可能避免的

20. 散列函数的构造方法:数字分析法;平方取中法;折叠法;除留余数法(最常用)

21. 选取散列函数应考虑以下因素:

散列表的长度(散列地址范围);关键字的长度;

关键字的分布情况;计算散列函数所需的时间;

记录的查找频率。

22. 处理冲突的方法:开放定址法;再散列法;链地址法;建立一个公共溢出区

23. 开放定址法分类:

线性探测再散列: di =1,2,3,…,m-1

二次探测再散列: di =1²,-1²,2²,-2²,3²,…,±k²(km/2)

伪随机探测再散列: di =伪随机数序列

24. 链地址法求ASL(成功)、ASL(失败):

25. 哈希表查找的平均查找长度实际上并不等于

26. 于冲突的产生,使得哈希表的查找过程仍然要进行比较(理想状态下不需要比较,实际上一般需要比较),仍然要以平均查找长度ASL来衡量。

27. 决定哈希表查找的ASL的因素:

(1)选用的哈希函数;

(2)选用的处理冲突的方法;

(3)哈希表饱和的程度,装载因子α=n/m 值的大小(n—记录数,m—表的长度)  α越小,发生冲突的可能性越小;反之越大。

28. 一般情况下,可以认为选用的哈希函数是“均匀”的,则在讨论ASL时,可以不考虑因素(1),因此,哈希表的ASL是处理冲突方法装载因子的函数。

数据结构 严蔚敏 第七章 查找 期末复习总结相关推荐

  1. 数据结构严蔚敏--第七章--图

    7.1 图的定义和术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图及其应用 7.6 最短路径

  2. 【数据结构总结】第七章 查找

    第七章 查找 提示:本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅读和浏览,加快记忆速度, ...

  3. 408数据结构考研笔记——第七章查找(命题重点)

    考点:折半查找的过程.构造判定树.分析平均查找时间             二叉排序树.平衡二叉树和红黑树了解概念.性质和相关操作             B树--插入删除和查找操作:B+树了解基本概 ...

  4. 数据结构 严蔚敏 第二章 线性表

    数据结构 严蔚敏 第二章 线性表 线性表:由n个(n>=0)数据特征相同的元素构成的有限序列. 线性表的类型定义表示和实现 顺序表 存储单元地址连续 随机存取 若每个元素占用 m 个存储单元,以 ...

  5. 【数据结构】第七章 查找

    第七章 查找 目录 第七章 查找 7.1 基本概念 7.2 顺序查找和折半查找 一.顺序查找 二.折半查找 三.分块查找 7.3 树形查找 一.二叉排序树(BST) 定义 查找具体值的代码实现 插入 ...

  6. 《数据结构》-第七章 查找(知识点总结)

    第七章 查找 本章开始介绍关于前几章这些数据结构的相应的运算-查找.关于查找的不同算法为每年考试考查的重点,主要分为线性结构的查找.树形结构的查找.散列结构的查找及字符串模式匹配,同时分析各个查找方法 ...

  7. 构建线性表的c语言代码,数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码...

    1.运行环境 这里说明一下这里所有的C语言代码都是基于code::blocks 20.03编译运行的.当然一些其他集成开发环境应该也是可以的,个人不太喜欢功能太过强大的IDE,因为那同样意味着相关设置 ...

  8. 【计算机】数据结构-严蔚敏/清华大学P3

    [计算机]数据结构-严蔚敏/清华大学P1 第二章    线  性表 线性结构 是 一个数据元素的有序(次序)集 线性结构的基本特征: 1.  集合中必存在唯一的一个"第一元素": ...

  9. 数据结构严蔚敏C语言版—线性表顺序存储结构(顺序表)C语言实现相关代码

    数据结构严蔚敏C语言版-线性表顺序存储结构(顺序表)C语言实现相关代码 1.运行环境 2.准备工作 1)项目构建 1>新建一个SeqList项目 2>新建两个文件Sources和Heade ...

  10. 数据结构严蔚敏清华大学pdf_2019年清华大学自动化系控制工程专业大数据方向考研经验分享...

    基本情况(以下内容仅代表个人观点) 我目前就读于西南某双非石油工程专业,2019考研报考清华大学自动化系大数据工程专业,一志愿复试被刷,侥幸调剂录取至微电子系.初试总分346分(政治-63 + 英语一 ...

最新文章

  1. 震惊!来看《这份程序员面试手册》!!!
  2. Android IPC机制
  3. java for遍历hashmap_Java中HashMap遍历几种方式
  4. 蓝桥杯单片机数码管动态显示_单片机静态动态数码管
  5. Coding the Matrix Week 2 The Vector Space作业
  6. python“-o”命令更改存储位置_程序员的狂欢地一般人的超大存储免费空间和网站空间你要会用用...
  7. 2.13 向量化 logistic 回归
  8. 【note】PAT甲级题目中的单词整理
  9. 【xcode 插件】快速插件安装
  10. Mysql主备延迟的来源
  11. python 遍历_python dict 两种遍历方式的比较
  12. 读书笔记系列2:《More Effective C++》
  13. LPC4370 USERMANUAL
  14. 如何将问卷中的矩阵题转换成SPSS可以分析的数据
  15. 戴尔服务器板载系统raid管理,如何在 Dell 系统的统一可扩展固件接口(UEFI)配置中管理您的板载 LSI 3008 RAID 控制器...
  16. 给硬件工程师的入门课-系统框图的设计
  17. 百度年龄计算机在线使用,百度精准年龄计算器在线计算app
  18. 802.11ac物理层
  19. jQuery - 基于serializeArray的serializeObject
  20. 可怕的paperpass论文查重啊 啊啊

热门文章

  1. vs 2010旗舰版问题
  2. 安利3个高清电脑壁纸网站
  3. Scheme 编程语言(1)介绍
  4. MySQL(InnoDB剖析):08---InnoDB关键特性(插入缓冲(Insert Buffer)、两次写(doublewrite)、自适应哈希索引(AHI)、异步IO(AIO)、刷新邻接页)
  5. python判断图像是否为灰度图
  6. 11. 深度学习实践:实践方法论
  7. 跨期套利交易系统策略
  8. NDoc - .NET 代码文档生成器
  9. 数码相机SD卡无法读取怎么办?照片怎么恢复
  10. 如何利用Python实现自动打卡签到