目录

  • 前言
  • 1. 平均查找长度(ASL)
  • 2. 顺序查找的 ASL
  • 2. 折半查找 ASL
  • 3. 散列表中地址链接法的 ASL
  • 4. 二叉排序树的 ASL

前言

1. 评论区错误已更新
2. 部分图片源自网络视频教程

查找长度(平均查找长度)和时间复杂度表示的是一个意思,相同的查找长度和时间复杂度处于一个量级。

而所谓的查找长度就是在查找运算中需要对比关键字的次数。

1. 平均查找长度(ASL)

  1. pi 是查找到某个元素的概率(probability)
  2. ci 是查找到这个元素时已经比较的次数,如,查找在 10 个数中查找第 5 个数,其比较的次数是多少(包括和第 5 个数比较的次数)

2. 顺序查找的 ASL

2. 折半查找 ASL

折半查找的 ASL 利用二叉判定树计算

NOTE:
每个结点的比较次数之和,即该结点所在的层次数
空指针处比较次数之和,就是该空指针的双亲结点所在的层次

3. 散列表中地址链接法的 ASL

ASL_成功 = 每个元素被访问(查找)的次数
ASL_失败 = 每个地址被访问(查找)的次数

4. 二叉排序树的 ASL

查找成功的情况

ASL = (层数*该层的结点个数)*每个结点被查找的概率

比如左图,第一层有一个,就是 1*1,第二层有两个结点就是 2*2,第三层有四个结点就是 3*4,以此类推。

因为计算的是 ASL,所以我们是假设每一个结点被查找的情况,通常每个结点被找到的概率都是相等的,即若有 n 个结点,那么每个结点被找到的概率就是 1/n。所以上图左图是乘以的 1/8 ,因为有 8 个结点。

最坏的情况,可以看到这是一棵二叉树,查找成功的最坏情况就是被查找的数据在最底层,也就是最坏情况就是查询一个树的高度。

查找失败的情况

查找失败的情况,就是查询到紫色框框(紫色框框就是 NULL)都发现没有找到要比对的数字,那么此时查找失败,其计算方式同成功时一样,只是我们只用计算失败的那些紫色的框框。

常见的平均查找长度总结相关推荐

  1. hash表的平均查找长度C语言,关于ASL(平均查找长度)的简单总结

    ASL(Average Search Length),即平均查找长度,在查找运算中,由于所费时间在关键字的比较上,所以把平均需要和待查找值比较的关键字次数成为平均查找长度. 它的定义是这样的: 其中n ...

  2. 计算二叉排序树的平均查找长度

    查找成功的情况下: 第一层结点:一个 查找了一次 第二层结点:二个 每个查找两次 第三层结点:四个 每个查找三次 第四层结点:二个 每个查找四次 所以查找成功情况下的平均查找长度是: 查找失败的情况下 ...

  3. 哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算

    最近复习了下数据结构中的哈希表,发现在计算等概率情况下查找不成功的平均查找长度时比较迷茫,不知道到底是怎么计算出来的.现在通过查阅资料终于知道如何计算了,所以记录下来以供以后查阅. 下面看下2010年 ...

  4. 数据结构:二叉查找树 BST 平均查找长度 ASL 的计算

    平均查找长度 ASL(Average Search Length),即平均查找长度,在查找运算中,由于所费时间在关键字的比较上,所以把平均需要和待查找值比较的关键字次数称为平均查找长度. 它的定义是这 ...

  5. 折半查找判定树及平均查找长度

    折半查找判定树及平均查找长度 从折半查找的过程看,以有序表的中间记录作为比较对象,并以中间记录将表分割为两个子表,对子表继续上述操作.所以,对表中每个记录的查找过程,可用二叉树来描述,二叉树中的每个结 ...

  6. (王道408考研数据结构)第七章查找-第一节:查找的基本概念、平均查找长度

    文章目录 一:查找的基本概念 (1)查找表和关键字 (2)查找的概念 二:静态查找表和动态查找表 三:查找算法评价指标--平均查找长度 一:查找的基本概念 (1)查找表和关键字 查找表(Search ...

  7. 二分查找的平均查找长度详解【转】

    来源:http://blog.csdn.net/turne/article/details/50488378 看数据结构书的时候碰上的内容,我自己将它化成关于级数的题,然后自己算的过程,基本就是等比级 ...

  8. 二叉排序树查找不成功的平均查找长度

    在看二叉排序树查找分析时,对"二叉排序树查找不成功的平均查找长度"不是很理解,上网查了一下,稍微小结一下: 假如一棵二叉排序树如下: 那么查找不成功的平均查找长度是:(2*2+3* ...

  9. 二分查找的平均查找长度_二分查找(折半查找)代码实现

    整理不易,手有余香请点赞! 折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高.但是该算法的使用的前提是静态查找表中的数据必须是有序的. 在折半查找之前对查找表按照所查的关 ...

  10. 【数据结构和算法笔记】线性表的查找(平均查找长度,二分法,判定树)

    查找: 给定一个值k,在含有n个元素的表中找出关键字等于k的元素,若找到,则查找成功,否则,查找失败 查找前首先确定(1)存放数据的数据结构是什么(2)元素是否有序 动态查找表:查找的同时做修改操作( ...

最新文章

  1. 面试被问分布式事务(2PC、3PC、TCC),这样解释没毛病!
  2. 【卷积神经网络结构专题】经典网络结构之VGG(附代码实现)
  3. 永远不要去依赖别人_读书心得马琴:永远不要依靠别人来保证你的安全读后感...
  4. 【快乐水题】1518. 换酒问题
  5. [转]html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
  6. wireshark 十六进制过滤_CTF流量分析之wireshark使用
  7. 图像学之底层算法基石其一
  8. ArcGIS License Server Administrator 10.2 无法启动许可的解决办法
  9. gcc下strstream使用时报错
  10. PowerDesigner生成SQL
  11. 国内移动CRM市场规模不及salesforce年营收3%
  12. javaMail简介(一)
  13. 三菱gxworks3安装失败_三菱gx works3下载 Gx Works3(三菱PLC编程软件) v1.031h 中文安装版(附安装教程+序列号) 下载-脚本之家...
  14. Jenkins高级篇之Pipeline方法篇-Pipeline Basic Steps-6-写文件writeFile和git SCM
  15. 墨卡托投影参数设置_横轴墨卡托投影坐标设置与导入导出CAD文件讲解
  16. 记账时对收支、借还款进行分类记录
  17. 白话前沿IT技术系列—云计算
  18. 给PDF文档添加图片签名的简单方法
  19. 联想电脑管家图文介绍:联想电脑管家怎么下载?
  20. mysql在触发器中调用存储过程_mysql 触发器中调用存储过程

热门文章

  1. CF417D Cunning Gena
  2. Java基础寒假作业-个人所得税计算系统
  3. 常用类/ID命名举例
  4. Android 如何查看 SQLite 数据库
  5. QQ在线客服设置-QQ开启临时会话教程
  6. 万字详解 阿里面试真题:请你说说索引的原理
  7. Java总结IO之总集篇
  8. 推荐一个 github 项目 spider163,抓取网络数据,歌曲评论等数据
  9. 为什么Wannacry 勒索病毒加密的部分数据能恢复?
  10. exe制作成安装包,Inno Setup软件使用教程