平均查找长度

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

它的定义是这样的:

其中n为查找表中元素个数,Pi为查找第i个元素的概率,通常假设每个元素查找概率相同,Pi=1/n,Ci是找到第i个元素的比较次数。

顺序查找平均查找长度的计算

在顺序查找(Sequence Search)表中,查找方式为从头扫到尾,找到待查找元素即查找成功,若到尾部没有找到,说明查找失败。

所以说,Ci(第i个元素的比较次数)在于这个元素在查找表中的位置,如第0号元素就需要比较一次,第一号元素比较2次…第n号元素要比较n+1次。所以Ci=i;所以

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

查找失败 的平均查找长度:

折半查找平均查找长度的计算

折半查找(Binary Search),首先待查找表是有序表,这是折半查找的要求。在折半查找中,用二叉树描述查找过程,查找区间中间位置作为根,左子表为左子树,右子表为右子树,因为这颗树也被成为判定树(decision tree)或比较树(Comparison tree)。

查找方式为(找k):先与树根结点进行比较,若k小于根,则转向左子树继续比较,若k大于根,则转向右子树,递归进行上述过程,直到查找成功或查找失败。

在n个元素的折半查找判定树中,由于关键字序列是用树构建的,所以查找路径实际为树中从根节点到被查结点的一条路径,因为比较次数刚好为该元素在树中的层数。所以:

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

其中,Pi为查找k的概率,level(Ki)为k对应内部结点的层次。而在这样的判定树中,会有n+!种查找失败的情况,因为将判定树构建为完全二叉树,又有n+1个外部结点(用Ei(0<=i<=n)表示)

查找失败 的平均查找长度:

qi表示查找属于Ei中关键字的概率,level(Ui)表示Ei对应外部结点的层次。

在一颗有n个结点判定树中,


例子:计算二叉查找树的平均查找长度

例:给11个数据元素有序表(2,3,10,15,20,25,28,29,30,35,40)采用折半查找。则ASL成功和不成功分别是多少?

先画出判定树,

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

查找失败 的平均查找长度:

参考:https://www.cnblogs.com/ygsworld/p/10238729.html

数据结构:二叉查找树 BST 平均查找长度 ASL 的计算相关推荐

  1. 数据结构---平均查找长度ASL的相关计算技巧

    个人总结的有关考研数据结构中平均查找长度ASL的三种计算小技巧: 顺序查找法的平均查找长度为:(n+1)/2 散列表的查找成功和查找不成功的平均查找长度 技巧(线性探测法和链地址法): ① 查找成功时 ...

  2. 数据结构几种平均查找长度

    数据结构几种平均查找长度 总结的有关数据结构中平均查找长度ASL的三种计算小技巧: 1.顺序查找法的平均查找长度为:(n+1)/2 2.散列表的查找成功和查找不成功的平均查找长度 技巧(线性探测法和链 ...

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

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

  4. 哈希表查找——成功和不成功时的平均查找长度

    哈希表查找--成功和不成功时的平均查找长度 以下求解过程是按照"计算机统考的计算方法",不同的老师.教材在"处理冲突"上可能会有不同的方法,所以最主要的是掌握原 ...

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

    二叉排序树的平均查找长度 上图所示为二叉排序树 查找成功时的平均查找长度: ASL=∑(本层高度*本层元素结点个数)/结点总数 =(1 * 1 +2 * 2+3 * 2)=11/5 查找失败时的平均查 ...

  6. 数据结构 顺序查找和折半查找的平均查找长度分析关于ASL(平均查找长度)的简单总结

    顺序查找 折半查找的平均查找长度分析 ASL:平均查找长度 其中n为查找表中元素个数,Pi为查找第i个元素的概率,通常假设每个元素查找概率相同,Pi=1/n,Ci是找到第i个元素的比较次数. A S ...

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

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

  8. 关于ASL(平均查找长度)的简单总结

    关于ASL的简单总结 概述 顺序查找中ASL计算 折半查找中ASL计算 哈希表中ASL计算 概述 ASL(Average Search Length),即平均查找长度,在查找运算中,由于所费时间在关键 ...

  9. 【hash表】hash表平均查找长度(ASL)

      hash 表在处理 collision 的时候有很多种方式,比如 线性探测(linear probing).二次探测(quadratic probing).开链法(seperate chaning ...

最新文章

  1. 取代现有电商和实体店菜市场的新模式
  2. PHP新手上路文件上传
  3. 《3D数学基础》系列视频:这次,真的是广告!
  4. 码农如何快速打造一个有设计感的网站
  5. ZedGraph怎样在双击图形后添加箭头标记
  6. java链式调用空指针_java 链式调用
  7. linux内核ddr初始化,X-007-UBOOT-DDR的初始化(Bubblegum-96平台)
  8. OECP社区正式上线
  9. matlab ann-bp分类器,利用matlab真的BP-ANN分类器设计.doc
  10. citrix 产品上线
  11. 用最通俗易懂的方式打开区块链!
  12. lua 远程调试 【zeroBrane 使用mobdebug】(good转)
  13. 华为鸿蒙操作系统国美通讯,国美通讯(600898)03月14日14:30大单揭秘
  14. IT码农哥放弃50万年薪:辞职卖咖喱凉皮
  15. springboot publish event 事件机制demo
  16. 广东第一高中生_广东男篮签下全美第一高中生 NBA状元热门征战CBA
  17. [原创]IBM BLM模型思维导图
  18. 【Database-02】达梦数据库 - DM Manager管理工具安装
  19. Kubadem方式安装Kubernetes(1.10.0)集群
  20. java video明星分类_分类: java基础 - 程序员老猫

热门文章

  1. POJ - 3422 Kaka's Matrix Travels(网络流-最大费用最大流+拆点法)
  2. 分治算法-02凸包问题
  3. 乘积的C语言,c语言矩阵相乘
  4. 使用Docker安装Spark集群(带有HDFS)
  5. JSP中的include指令
  6. 【玩转cocos2d-x之九】动作类CCAction
  7. cocos2d-x初探学习笔记(1)--HelloWorld
  8. 网狐棋牌(一) ServerKernel中的IQueueService接口分析
  9. docker学习笔记(一)docker入门
  10. Java集合框架:LinkedHashMap