《软件设计师教程》里关于折半查找的平均查找长度的计算过程有错字和不够完整的问题。在此详细推导一次。 设折半查找判定树结点总数为\(n=2^h-1\),则判定树是深度为\(h=log_2(n+1)\)的满二叉树。在等概率情况下,折半查找平均查找长度为: \[ASL_{bs ...
首先,折半查找可以借助于一个二叉树来描述。 为了简化讨论,则把这棵树近似看成满二叉树,设二叉树的高度为h h gt 则,根据二叉树的性质,它有最大节点数, 则 是底数 。那么二叉树的第j层节点数为: j ,当最后一层也就是j h 假定每个元素的查找概率相等,则,pi n pi为第i个节点的查找概率 那么平均查找长度为 n j j 则经过化简计算,得平均查找长度为: n n log n 其中对数中的 ...
2021-02-24 14:13 0 1852 推荐指数:
《软件设计师教程》里关于折半查找的平均查找长度的计算过程有错字和不够完整的问题。在此详细推导一次。 设折半查找判定树结点总数为\(n=2^h-1\),则判定树是深度为\(h=log_2(n+1)\)的满二叉树。在等概率情况下,折半查找平均查找长度为: \[ASL_{bs ...
ASL:平均查找长度,即一次查找需要的次数,评价查找算法性能的指标。 查找成功的ASL:每个元素被查找的概率*查找该元素的比较次数的总和。 查找失败的ASL:根据已有的元素将失败情况划分为多个部分,计算各部分被查找的概率*确认其失败所需要的比较次数的总和。 ...
Hash表的平均查找长度ASL计算方法 Hash表的“查找成功的ASL”和“查找不成功的ASL” ASL指的是 平均查找时间 关键字序列:(7、8、30、11、18、9、14) 散列函数: H(Key) = (key x 3) MOD 7 装载 ...
一、线性探测再散列法 Hash表: 元素的值(value)和在数组中索引位置(index)有一个确定关系 Index = Hash(key) ==> y = f(x) ...
Hash表的“查找成功的ASL”和“查找不成功的ASL” ASL指的是 平均查找时间 关键字序列:(7、8、30、11、18、9、14) 散列函数: H(Key) = (key x 3) MOD 7 装载因子: 0.7 处理冲突:线性探测再散列法 查找成功的ASL计算 ...
如果你看了很多其他博客然后都看不懂看到了这篇,你一定可以容易懂的!我佛了,这么简单的东西死板地讲题目不讲原理鬼看得懂啊,这种风气真的不行,我忍不住想骂一声垃圾,啥玩意儿,误人子弟!原理懂了啥题不会做? 要想知道 散列表查找失败的平均查找长度,就要知道什么叫做查找失败!举个栗子:8个数字 key ...
折半查找 算法思想 算法实现 查找判定树 折半查找效率 折半查找的算法思想 折半查找,又称“二分查找”,仅适用于有序的顺序表 33>mid,往右查 右指针到一个位置就-1,左指针到一个位置就+1 low>high,查找失败 折半查找 ...
顺序查找可以是线性表也可以是链表,同是既可以是有序的也可以是无序。 折半查找仅适用于有序的线性表 ...