首先,折半查找可以借助于一个二叉树来描述。
为了简化讨论,则把这棵树近似看成满二叉树,设二叉树的高度为h(h>1)
则,根据二叉树的性质,它有最大节点数
(2是底数)。那么二叉树的第j层节点数为:2^(j-1),当最后一层也就是j=h
假定每个元素的查找概率相等,则,pi=1/n (pi为第i个节点的查找概率)
那么平均查找长度为 1/n*(1*2^0+2*2^1+3*2^2+……+j*2^(j-1))
则经过化简计算,得平均查找长度为:((n+1)/n ) *log2(n+1)-1 (其中对数中的2为底数:即log以2为底(n+1)的对数)
注 : 当n很大时 ,可近似为 log2(n+1)-1
其中 1*2^0+2*2^1+3*2^2+……+j*2^(j-1)的求法如下:
设 S = 1*2^0 + 2*2^1+3*2^2 +……+ j*2^(j-1) ,
则 2S = 1*2^1+2*2^2 +……+ (j-1)*2^(j-1) + j*2^j
则 2S - S = -( 2^0 + 2^1 + 2 ^2 + …… + 2 ^(j-1)) + j *2^j
即 S = - (2^j-1)+j*2^j           (注这里的相当于h)
带入化简即可。

然后将j用n表示

如何计算折半查找的平均查找长度?相关推荐

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

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

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

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

  3. [时间复杂度]为什么采用二叉排序树查找的平均查找长度为O(log2n)

    ###二分法求数值x的整数n次幂 有没有O(log n)的方法呢?得二分思想了.这里的二分是指减少乘法的次数,把重复的运算省去.我要求x的n次方,那么先求x的n/2次方,然后两个相乘起来.如此递归下去 ...

  4. 散列表查找失败平均查找长度

    如果你看了很多其他博客然后都看不懂看到了这篇,你一定可以容易懂的!我佛了,这么简单的东西死板地讲题目不讲原理鬼看得懂啊,这种风气真的不行,我忍不住想骂一声垃圾,啥玩意儿,误人子弟!原理懂了啥题不会做? ...

  5. 折半查找判定树 二叉排序树 查找成功平均查找长度 查找失败平均查找长度

    写在前边的话:你的支持是我写作的动力,有帮助到你的话麻烦点赞加收藏呦.感激不尽!如有错误也请留言指正. 考研数据结构练习,欢迎订阅我的专辑<考研数据结构题型分类讲解练习> [哈尔滨工业大学 ...

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

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

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

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

  8. 折半查找的平均查找次数分析

    前面我们讨论过在有序顺序表的查找树中,是最不平衡树,关键字有n个,则查找失败的结点有n+1个.把这个一般化,性质不变,也即:查找失败结点仍然是n+1个.这个性质在B树部分也是成立的,不做严格推导,只引 ...

  9. 二分查找的平均查找长度_二分查找

    1.什么是二分查找 数据的查找在计算机的操作中非常常见,那么我们应该怎样在计算机中实现查找操作呢? 最简单的一种方法:"傻找",也就是一个一个的找,我们把数组中的每个元素都和我们想 ...

最新文章

  1. Does the “LINQ to Objects” provider have built-in performance optimization?
  2. mongodb内存映射原理
  3. windows ffmpeg 的安装
  4. 堆积密度怎么做_长尾关键词怎么优化?这样布局关键词排名效率高
  5. mysql之触发器before和after的区别
  6. 基于OpenCV检测影像中的车辆
  7. 20162306 2017-2018-1《程序设计与数据结构》 第11周学习总结
  8. Conditional Generative Adversarial Nets论文翻译
  9. 中国大学mooc 慕课 管理信息系统(同济大学) 第八章 电子商务 第九章 信息系统规划 习题 测试答案
  10. 基于C++的教师信息管理系统
  11. 安卓手机多开助手v1.2 BY im大朋友
  12. ape是什么格式?ape怎么转mp3?
  13. 雷电模拟器android文件夹在哪,雷电模拟器共享文件夹怎么用_雷电模拟器共享文件夹功能使用方法介绍_3DM手游...
  14. 思维拓展:用java实现巧妙过桥问题
  15. 汽车驾驶技巧-倒车入库技巧图解-怎样倒车入库
  16. [转]齐善鸿:职业心智训练与管理教育
  17. 使用Java导出Excel表格并由浏览器直接下载——基于POI框架
  18. 在Java程序员能够从事哪些岗位
  19. 怎样提取网页视频中的音频文件
  20. TX Text Control文字处理教程(4)标记文本域

热门文章

  1. JS解密入门案例:python有道翻译JS解密
  2. 量子计算机是否存在相对论,一个神秘的物理现象,爱因斯坦也感到疑惑,至今没有解决...
  3. c语言中第一字符必须是,【填空题】C语言中规定标识符只能由字母、数字、下划线组成,且第一个字符必须是( ) 。...
  4. 刺激战场如何压枪最稳?三种方法教你远距离也能无后坐力压枪
  5. dos命令删除文件夹和文件的方法
  6. Mac OS X 雪豹 snow leopard 免费升级 到 Lion 方法
  7. 检察院《计算机管理制度》,《涉密计算机管理制度》
  8. C++基础 输入输出流及常用头文件
  9. 通过活动看百度与360
  10. 金融学知识-(front-running)