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

折半查找的过程看,可用二叉树来描述,二叉树中的每个结点对应有序表中的一个记录,结点中的值为该记录在表中的位置。通常称这个描述折半查找二叉树的过程称为折半查找判定树。

例如:长度为10的折半查找判定树的具体生成过程:
都遵循这个规律,左孩子结点<根结点<右孩子结点
    (1)在长度为10的有序表中进行折半查找,不论查找哪个记录,都必须和中间记录进行比较,而中间记录为
(1+10)/2 =5  (注意要取整)   即判定数的的根结点为5,如图7-2(a)所示。
     (2)考虑判定树的左子树,即将查找区域调整到左半区,此时的查找区间为[1,4],那么中间值为(1+4)/2 =2 (注意要取整) ,所以做孩子根结点为2,如图7-2(b)所示。
     (3)考虑判定树的右子树,即将查找区域调整到右半区,此时的查找区间为[6,10],那么中间值为(6+10)/2 =8 (注意要取整) ,所以做孩子根结点为8,如图7-2(c)所示。
       (4)重复以上步骤,依次去确定左右孩子、


1.折半查找是一棵二叉排序树,每个根结点的值都大于左子树的所有结点的值,小于右子树所有结点的值。
2.折半查找判定数中的结点都是查找成功的情况,将每个结点的空指针指向一个实际上不存在的结点————外结点,所有外界点都是查找不成功的情况,如图7-2(e)所示。如果有序表的长度为n,则外结点一定有n+1个
折半查找判定数中,某结点所在的层数就是即将要比较的次数,整个判定树代表的有序表的平均查找长度即为查找每个结点的比较次数之和除以有序表的 长度。
  例如:长度为10的有序表的平均查找长度为
        ASL=(1*1+2*2+3*4+4*3)/10=29/10;

折半查找判定数中,查找不成功的次数即为查找相应外结点与内结点的比较次数。整个判定树代表的有序表的平均查找长度。查找失败时的有序表的平均查找长度即为查找每个外结点的比较次数之和除以外结点的个数。
如图7-2(e)所示
   例如:查找失败时,。长度为10的有序表的平均查找长度为
 ASL=(3*5+4*6)/11=39/11;

总结:
成功: 第一层到最后一层,层数*对应层数的成功的结点数累加然后除以成功的结点总数
失败: 倒数第二层的层数*下一层失败(没有)的结点数加上最后一层的层数*下一层失败(没有)的结点数(和已有的结点互补)然后除以失败的结点总数

原文链接: https://blog.csdn.net/zhupengqq/article/details/51837908?utm_medium=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.control

看到最后的帮忙

点个赞

折半查找判定数及平均查找长度(一定要看这 能看懂的)相关推荐

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

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

  2. Hash表查找成功和查找不成功的平均查找长度(附总结)

    Hash表的平均查找长度包括查找成功时的平均查找长度和查找失败时的平均查找长度. 查找成功时的平均查找长度=表中每个元素查找成功时的比较次数之和/表中元素个数: 查找不成功时的平均查找长度相当于在表中 ...

  3. 如何计算哈希表查找失败时的平均查找长度

    题目描述: 1.请回答采用线性探测再散列和链地址法处理冲突构建的哈希表中,查找失败时的平均查找长度如何计算? 例:已知一组关键字(19,14,23,1,68,20,84,27,55,11,10,79) ...

  4. 哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算

    最近复习了下数据结构中的哈希表,发现在计算等概率情况下查找不成功的平均查找长度时比较迷茫,不知道到底是怎么计算出来的.现在通过查阅资料终于知道如何计算了,所以记录下来以供以后查阅. 下面看下2010年 ...

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

    在看二叉排序树查找分析时,对"二叉排序树查找不成功的平均查找长度"不是很理解,上网查了一下,稍微小结一下: 假如一棵二叉排序树如下: 那么查找不成功的平均查找长度是:(2*2+3* ...

  6. 等概率情况下查找成功时的平均查找长度

    4.设散列表的地址范围为0-17,散列函数为:H(K)=K MOD 13,K为关键字.用线性探测法处理冲突,输入关键字序列:(10,24,32,17,31,30,46,47,40,63,49),完成以 ...

  7. 哈希表查找——等概率情况下查找成功和查找不成功的平均查找长度的计算

    最近复习数据结构中的哈希表,发现在计算等概率情况下查找不成功的平均查找长度时不太理解,不知道到底是怎么计算出来的.看了几篇博客后终于知道如何计算了,总结如下. 例题: 将关键字序列(7.8.30.11 ...

  8. 二叉排序树(查找树)的平均查找长度

    如图所示的二叉排序树 查找成功的平均查找长度为:∑(本层高度*本层元素个数)/节点总数=(1*1+2*2+3*3+3*4)/9 查找不成功的平均查找长度:∑(本层高度*本层补上的叶子个数)/补上的叶子 ...

  9. 计算散列表查找成功和查找不成功的平均查找长度(利用线性探测法处理冲突)

    散列表 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.映射函数叫做 ...

最新文章

  1. 百度搜索中台的FaaS化建设和智能化建设
  2. android 区分wifi是5G还是2.4G(转)
  3. java不同类之间参数传递_《java基础》整型包装类之间值得比较
  4. 放出php压缩HTML函数,轻松压缩html、js和Css
  5. 程序员情人节送这些!
  6. ES6--那些新加入的数组方法
  7. 贝壳金控赵文乐:基于 Spring Cloud 的服务治理实践
  8. 横向的二级导航菜单,在多浏览器下可用
  9. Java 多态,接口
  10. 【图像去噪】基于matlab GUI均值+中值+高斯低通+多种小波变换图像去噪【含Matlab源码 856期】
  11. 天地图卫星地图_一起看地图谷歌地图高清卫星地图在线_世界这么大,用地图去看看!...
  12. 内存屏障 - MemoryBarrier
  13. Windows网络连接指示器,NCSI
  14. matlab产生窄带高斯随机过程,窄带随机过程的产生及其性能测试
  15. 党政信创建设进入新发展阶段的三大趋势
  16. 欧洲杯第一周的比赛闲聊
  17. nvidia jetson agx Xavier can 开机自动运行脚本
  18. 树莓派更改WiFi信息
  19. MCNP学习笔记之命令行与接续运行
  20. Java生成随机数原理_Java中随机数的产生方式与原理详解

热门文章

  1. gk888t打印机安装
  2. Excel 2010 SQL应用041 根据二代身份证号返回出生年份
  3. python舆情系统开发_舆情系统开发
  4. string刷题集合
  5. 【WSL2】ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemo
  6. 如何用Python操作Excel自动化办公?一个案例教会你openpyxl——公式计算和数据处理
  7. 嵌入式linux解决方法 | u-boot NFS下载文件报错:Loading: *** ERROR: File lookup fail
  8. HaaS轻应用(JavaScript)总览
  9. AngularJS之表格设置样式
  10. 张钜楷;3.25黄金、原油、磅日、美加、澳美,外汇,今日行情分析及解套