
算法导论
文章平均质量分 60
seu2hit
这个作者很懒,什么都没留下…
展开
-
算法导论 6.3-3解答
证明:在任一含n个元素的堆中,至多有ceiling(n/(2^(h+1)))个高度为h的节点。分析:刚开始分析这道题,犯了结点高度h的错误。 具体问题如下: 对于满二叉树,上述命题成立。但如果是非完全二叉树,命题不成立。举例说明:假设有10个元素,那么高度为1的节点也就是第3层的节点,一共有4个,而不是ceiling(10/2^2))=3个,为什么呢?经过思考以后,对于结点高度的定转载 2013-03-11 21:53:44 · 1022 阅读 · 0 评论 -
一棵以节点i为根的、大小为n的子树上,i节点的子树大小至多为2n/3(最坏情:底层恰好半满的时候)
这里应该是讨论完全二叉树,规定总size为n,要求根的左子树的最大size。(由于右子树size总是<=左子树size)那么显然,观察最底层节点数目为0, 1, 2...的情况,显然半满的时候左子树达到了最大。以下求此时左子树的大小:设底层半满时节点树为x,则再加x个节点,就是满树:n + x = 2x * 2 - 1 = 满树size可得n = 3x - 1满树时原创 2013-03-11 22:19:50 · 2029 阅读 · 0 评论 -
动态规划--矩阵连乘问题
给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2,…,n-1。考察这n个矩阵的连乘积A1A2…An。由于矩阵乘法满足结合律,故计算矩阵的连乘积可以有许多不同的计算次序,这种计算次序可以用加括号的方式来确定。若一个矩阵连乘积的计算次序完全确定,则可以依此次序反复调用2个矩阵相乘的标准算法(有改进的方法,这里不考虑)计算出矩阵连乘积。若A是一个p×q矩阵,B是一个q×r矩阵原创 2013-03-15 16:21:02 · 1174 阅读 · 0 评论 -
动态规划--最长公共子序列
问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是X的子序列,存在X的一个严格递增下标序列0,i1,…,ik-1>,使得对所有的j=0,1,…,k-1,有xij=yj。例如,X=“ABCBDAB”,Y=“BCDB”是X的一个子序列。考虑最原创 2013-03-18 15:52:09 · 520 阅读 · 0 评论 -
动态规划
一、基本概念动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决转载 2013-03-20 13:48:52 · 423 阅读 · 0 评论 -
动态规划--最优二叉搜索树
一、最优二叉查找树最优二叉查找树:给定n个互异的关键字组成的序列K=,且关键字有序(k1图一显示了给定上面的概率分布pi、qi,生成的两个二叉查找树的例子。图二就是在这种情况下一棵最优二叉查找树。概率分布:i012345pi原创 2013-03-20 17:43:34 · 1253 阅读 · 0 评论