常见的平均查找长度总结
目录
- 前言
- 1. 平均查找长度(ASL)
- 2. 顺序查找的 ASL
- 2. 折半查找 ASL
- 3. 散列表中地址链接法的 ASL
- 4. 二叉排序树的 ASL
前言
1. 评论区错误已更新
2. 部分图片源自网络视频教程
查找长度(平均查找长度)和时间复杂度表示的是一个意思,相同的查找长度和时间复杂度处于一个量级。
而所谓的查找长度就是在查找运算中需要对比关键字的次数。
1. 平均查找长度(ASL)
- pi 是查找到某个元素的概率(probability)
- 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)都发现没有找到要比对的数字,那么此时查找失败,其计算方式同成功时一样,只是我们只用计算失败的那些紫色的框框。
常见的平均查找长度总结相关推荐
- hash表的平均查找长度C语言,关于ASL(平均查找长度)的简单总结
ASL(Average Search Length),即平均查找长度,在查找运算中,由于所费时间在关键字的比较上,所以把平均需要和待查找值比较的关键字次数成为平均查找长度. 它的定义是这样的: 其中n ...
- 计算二叉排序树的平均查找长度
查找成功的情况下: 第一层结点:一个 查找了一次 第二层结点:二个 每个查找两次 第三层结点:四个 每个查找三次 第四层结点:二个 每个查找四次 所以查找成功情况下的平均查找长度是: 查找失败的情况下 ...
- 哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算
最近复习了下数据结构中的哈希表,发现在计算等概率情况下查找不成功的平均查找长度时比较迷茫,不知道到底是怎么计算出来的.现在通过查阅资料终于知道如何计算了,所以记录下来以供以后查阅. 下面看下2010年 ...
- 数据结构:二叉查找树 BST 平均查找长度 ASL 的计算
平均查找长度 ASL(Average Search Length),即平均查找长度,在查找运算中,由于所费时间在关键字的比较上,所以把平均需要和待查找值比较的关键字次数称为平均查找长度. 它的定义是这 ...
- 折半查找判定树及平均查找长度
折半查找判定树及平均查找长度 从折半查找的过程看,以有序表的中间记录作为比较对象,并以中间记录将表分割为两个子表,对子表继续上述操作.所以,对表中每个记录的查找过程,可用二叉树来描述,二叉树中的每个结 ...
- (王道408考研数据结构)第七章查找-第一节:查找的基本概念、平均查找长度
文章目录 一:查找的基本概念 (1)查找表和关键字 (2)查找的概念 二:静态查找表和动态查找表 三:查找算法评价指标--平均查找长度 一:查找的基本概念 (1)查找表和关键字 查找表(Search ...
- 二分查找的平均查找长度详解【转】
来源:http://blog.csdn.net/turne/article/details/50488378 看数据结构书的时候碰上的内容,我自己将它化成关于级数的题,然后自己算的过程,基本就是等比级 ...
- 二叉排序树查找不成功的平均查找长度
在看二叉排序树查找分析时,对"二叉排序树查找不成功的平均查找长度"不是很理解,上网查了一下,稍微小结一下: 假如一棵二叉排序树如下: 那么查找不成功的平均查找长度是:(2*2+3* ...
- 二分查找的平均查找长度_二分查找(折半查找)代码实现
整理不易,手有余香请点赞! 折半查找,也称二分查找,在某些情况下相比于顺序查找,使用折半查找算法的效率更高.但是该算法的使用的前提是静态查找表中的数据必须是有序的. 在折半查找之前对查找表按照所查的关 ...
- 【数据结构和算法笔记】线性表的查找(平均查找长度,二分法,判定树)
查找: 给定一个值k,在含有n个元素的表中找出关键字等于k的元素,若找到,则查找成功,否则,查找失败 查找前首先确定(1)存放数据的数据结构是什么(2)元素是否有序 动态查找表:查找的同时做修改操作( ...
最新文章
- 面试被问分布式事务(2PC、3PC、TCC),这样解释没毛病!
- 【卷积神经网络结构专题】经典网络结构之VGG(附代码实现)
- 永远不要去依赖别人_读书心得马琴:永远不要依靠别人来保证你的安全读后感...
- 【快乐水题】1518. 换酒问题
- [转]html中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
- wireshark 十六进制过滤_CTF流量分析之wireshark使用
- 图像学之底层算法基石其一
- ArcGIS License Server Administrator 10.2 无法启动许可的解决办法
- gcc下strstream使用时报错
- PowerDesigner生成SQL
- 国内移动CRM市场规模不及salesforce年营收3%
- javaMail简介(一)
- 三菱gxworks3安装失败_三菱gx works3下载 Gx Works3(三菱PLC编程软件) v1.031h 中文安装版(附安装教程+序列号) 下载-脚本之家...
- Jenkins高级篇之Pipeline方法篇-Pipeline Basic Steps-6-写文件writeFile和git SCM
- 墨卡托投影参数设置_横轴墨卡托投影坐标设置与导入导出CAD文件讲解
- 记账时对收支、借还款进行分类记录
- 白话前沿IT技术系列—云计算
- 给PDF文档添加图片签名的简单方法
- 联想电脑管家图文介绍:联想电脑管家怎么下载?
- mysql在触发器中调用存储过程_mysql 触发器中调用存储过程