HJ指示器变量假说及随机构建二叉树性能证明分析

HJ指示器变量假说

 

本文主要通过随机构建二叉树性能证明来摸索出指示器变量使用的物理层面逻辑意义,称之为HJ指示器变量假说;

日期:2019/1/15,20日掌握算法导论day6


  • 【理论总结】根据目标变量Yn的特性,去分析出性质变量的可能表现形式Rn。而后再以Zn为工具去试图打破性质变量和目标变量之间的隔阂
  • 指示器变量更像是一种无赖透顶的假设。我们可以很容易的搭建出目标变量和性质变量的部分关系。但是如果要将这部分关系放大推广到任意情况,使用指示器变量则非常自然。。没错,就是无脑穷举,然后等号就不得不成立了。
  • 【理论探究】
    • 性质变量是否唯一
    • 对于确定的性质变量,指示器变量是否唯一
    • 对于确定的指示器变量,性质变量是否唯一
    • 是否存在如下一般化的方法:目标变量、指示器变量、性质变量互推的一般化方法或形式化步骤

下面通过算法导论12.4节,随机构建二叉树性能的证明过程来分析HJ指示器变量假说的运用

  • 【证明核心步骤】
    • 【证明目标锁定】:求树高度X的期望值
    • 变量转化,将X转化为指数高度Y,方便计算。(仅仅是为了方便计算,随机变量Y的定义并没有任何逻辑意义)。强调-Y为目标变量,需要通过别的变量来描述他并求解。
    • 引入随机变量Rn。Rn这个随机变量蕴含着随机构建二叉树的随机性性质。强调-Rn为性质变量,根据Rn的定义明显的可以感知到其中蕴含着关于几何结构的特性,对Rn进行描述的物理量容易给出准确的数学表达式的值。
    • 目标变量Yn和性质变量Rn的最终搭桥通过指示器变量Zn来实现。
    • 最终得到Zn和Yn的关系后,剩下的计算都是纯代数的运算。。经常会将最终的期望等式变成递归式,然后运用代入法求解。
  •  【本定理证明的依据是什么?】
    •  本定理的关键步骤依赖于随机性假设以及二叉树的结构性质
  • 算法导论中12.4节证明的随机二叉构建树为了证明方便而假定没有删除操作,只有插入操作。这个假定不是必要的,仅仅是为了证明方便而已。

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
二叉树是一种非常重要的数据结构,其建立和遍历操作算法的设计和复杂度分析也是非常重要的。下面是二叉树建立和遍历操作算法的分析与设计。 1. 二叉树的建立算法 二叉树的建立有两种方式:递归法和非递归法。 递归法建立二叉树的过程如下: - 如果当前节点为NULL,则返回NULL。 - 如果当前节点不为NULL,则创建一个新节点,并且为其赋值。 - 递归建立左子树。 - 递归建立右子树。 - 返回当前节点。 非递归法建立二叉树的过程如下: - 创建一个空栈。 - 读入根节点,将其入栈。 - 如果当前节点不为NULL,则创建一个新节点,并且为其赋值。 - 如果当前节点的左子树不为空,则将其入栈。 - 否则,将当前节点弹出栈,并且读入右子树。 - 重复步骤3-5,直到栈为空。 二叉树的建立算法的时间复杂度是O(n),其中n是二叉树中节点的个数。 2. 二叉树的遍历算法 二叉树的遍历分为三种:前序遍历、中序遍历和后序遍历。 前序遍历的算法如下: - 如果当前节点不为空,则输出当前节点的值。 - 递归遍历左子树。 - 递归遍历右子树。 中序遍历的算法如下: - 递归遍历左子树。 - 如果当前节点不为空,则输出当前节点的值。 - 递归遍历右子树。 后序遍历的算法如下: - 递归遍历左子树。 - 递归遍历右子树。 - 如果当前节点不为空,则输出当前节点的值。 三种遍历算法的时间复杂度都是O(n),其中n是二叉树中节点的个数。 总的来说,二叉树的建立和遍历操作算法的设计和复杂度分析是非常重要的基础知识,对于算法和数据结构的学习和应用都有重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值