《算法导论》:等概率的前提下通过判定树来分析折半查找的性能

原创 2013年12月05日 14:39:35

折半查找的最差情况下的性能是floor(log-n)+1,即一直查找到最底层才找到或找不到。

这个判定树与霍夫曼树的区别在于折半查找的判定树的内节点也是待查找元素,而叶子节点是区间。因此折半查找与BST更相似,只不过折半查找的判定树是固定的,不是动态结构。另一个区别在于折半查找是以元素的序号来区分的,而BST的元素序号与其位置没有关系,BST元素的键值决定了其位置,而且键值没有二分关系。

描述折半查找的判定树是深度为h的满二叉树(把找不到的情况加入,则为满二叉树),树中层次为1的节点有一个即根节点,层次为2的节点数目为2,层次为h的节点数目为2^h-1。若各个节点的查找的概率相同,都为1/n,则查找长度的期望为:

ASLaverage search length=Sum(PiCi)

=

平均性能也是floorlog(n+1))即最差性能和平均性能同阶。

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

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

查找算法整理(一)---静态查找表:顺序表查找、折半(判定树)查找、静态查找树

查找在实际应用中也是最为常见的。通常我们要在一个集合中查找某一个数或多个数,这个集合称为查找表。查找表分为静态查找表和动态查找表。 静态查找表:在查找表中查询某个“特定的”元素,查找表的大小不会改变,...
  • x_panda
  • x_panda
  • 2013年11月27日 18:49
  • 1307

《算法导论》第5章 概率分析和随机算法 个人笔记

第5章 概率分析和随机算法本章通过四个例子来理解概率分析和随机算法。5.1 生日悖论 5.2 球与箱子 5.3 特征序列 5.4 在线雇佣问题...
  • Amber07
  • Amber07
  • 2017年05月04日 16:05
  • 173

算法导论第五章概率分析和随机算法最后思考题

5.1概率计数。没太看明白题意。。 5.2(查找一个无序数组)本题将分析三个算法,他们在一个包含n个元素的无序数组A中查找一个值x. 考虑如下的随机策略:随机挑选A中的一个下标i,如果A[i]=x,则...

算法导论——第五章概率分析与随机算法笔记

这一章以雇用问题开始。   这个问题可以有如下类比:在一个游戏里面,你身上最多可以装备一把剑,你每次在得到一把新的剑的时候都会和当前装备的剑进行比较,如果比当前的好,那就换上新的剑。但是换剑你需要付金...

算法导论代码 第5章 概率分析和随机算法

第5章 概率分析和随机算法 5.1 雇用问题 #include #include #include void hire_assistant(int A[], int n) { in...

算法导论之概率分析和随机算法文档

概率分析和随机算法文档   本章由雇用问题引出随机算法。一家公司要雇用一个新的办公经理,于是要找一个雇用代理来推荐面试者,由我面试他,然后决定是否雇用。花费主要有:要付一小部分钱给这个雇用代理,让其...

算法导论第5章5.4概率分析和随机算法

算法导论学习(一)——概率分析和随机算法【待续】

1 球与箱子问题(礼券收集者问题): 有b个箱子,每投一次球,球等可能地落到每个箱子中,问,投多少次球,才能使每个箱子都至少有一个球? 【补充知识】 ① 几何分布的概念:假定我们有一系列伯...

不存储数据流的前提下,从输入流中获得这 n 个等概率的随机数据

有一个很大很大的输入流,大到没有存储器可以将其存储下来, 而且只输入一次,如何从这个输入流中随机取得n 个记录。采用何种方法,才能在不需要存储数据流的基础上,获得这 n个等概率的随机数据呢? T...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《算法导论》:等概率的前提下通过判定树来分析折半查找的性能
举报原因:
原因补充:

(最多只允许输入30个字)