热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

《算法导论》CH6习题6.3-3的证明

求证:在任一含n个元素的堆中,至多有┌n2h+1┐w个高度为h的节点。首先解释一下名词的概念:节点高度(heightofnode):从在该节点下的最低的叶子向上,该节点所在的层数节点深度(de

求证:在任一含n个元素的堆中,至多有┌n/2h+1┐w个高度为h的节点。

首先解释一下名词的概念:
节点高度(height of node):从在该节点下的最低的叶子向上,该节点所在的层数
节点深度(depth of node):从根节点向下,经过的层数。
注意:以上计数都是从0开始的,如图1:
节点4的高度为2,深度为2
节点5的高度为1,深度为2
因此,属于同一层的节点一定有同样的深度,但是高度可能相同,也可能相差1.

   图2       图1

                        图1                                                                    图2

证明:(1)先证当h=0时,该结论是成立的。
h=0,即高度为0的节点,显然是叶子节点,这些节点有两种,第一种A在树的最下面的一层的所有节点,第二种B是在倒数第二层没有叶子结点的结点。对于有n个节点的堆:
当n为奇数时,如图1所示,叶子节点共有k1=┌n/2┐个,相应地非叶子节点有k2=n-┌n/2┐=└n/2┘个,可以看出k1=k2+1,即n=2*k1-1,得出k1=(n+1)/2=┌n/20+1┐(因为n为奇数),属于叶子节点的高度都为0,即我们要证的h=0,得证。
当n为偶数时,如图2,可以利用n为奇数时的结论,为其添加一个节点,研究n+1个节点的叶子节点。有叶子节点k1'=┌(n+1)/2┐=n/2+1个,n+1=2*k1'-1,k1'比k1多一个添加的叶子节点,故k1=k1'-1=n/2=┌n/20+1┐(因为n为偶数)。

(2)下面证,已知高度为h-1的节点至多有┌n/2h┐个,高度为h的点至多有┌n/2h+1┐个。
对于高度为h-1的点,无论它是叶子节点还是内部节点,它们的所有的父节点一定是高度为h的节点,所以可以从这里下手,已知高度为h-1的节点至多有┌n/2h┐,刚它的父节点个数为C=┌┌n/2h┐/2┐。
当n为奇数时,┌n/2h┐=(n+1)/2h,上式可化为C=┌(n+1)/2h+1┐,同样因为n为奇数,C=┌n/2h+1┐;当n为偶数时,┌n/2h┐=n/2h,父节点个数为C=┌(n/2h)/2┐=┌n/2h+1┐。
综上,可得证。

===========================分割线===================================

吐糟一下,网上有算法导论的答案,参考了一下,觉得外国人分析的也真挺严密的,以上是我的理解。还是要原创嘛。

数学符号实在找不到,只能先用这个奇怪的┌┐代替,哈哈,发现自己已经习惯用这个了。

第一次用GIMP作图,把PS的思想全盘搬,发现自己快要疯掉了,没办法,要用Linux就要逐渐摆脱对各种软件的信赖。

以上如果有不严密的地方,欢迎一起来討論。


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 计算成像的原理与应用研究
    本文探讨了计算成像的原理与应用研究。首先介绍了小孔成像实验和软件方面的相关内容。随后从傅里叶光学的角度简单谈了成像的过程。成像是观测样品分布的一种方法,通过成像系统接收光的强度来呈现图像。视网膜作为接收端接收到的图像实际上是由像元组成的矩阵,每个元素代表相应位置像元接收光的强度。大脑通过对图像的分析,得出一系列信息,如识别物体、判断距离等。计算成像是一种采集记录系统,通过处理数据得到样品分布与像的对应关系,用于后续问题的分析。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
author-avatar
ssl87
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有