Solution to CLRS Chapter 3

来源:互联网 发布:nodejs koa cms 编辑:程序博客网 时间:2024/06/04 19:20
3.1-1

3.1-2
由于上面的式子,单点递减,极限为1是最小值,最大值是n=1的情况取得,故而常数c1,c2的值确定,复杂度为

3.1-3
O(n^2)的意思是:该算法的worst-case running time 是 n^2的,这个符号是用来刻画算法运行最差的那些情况下的性能。而”the running time of algorithm A is at least”刻画的是该算法最优情况下的性能,两者刻画的角度截然不同,所以这句话meaningless。

3.1-4
后者不成立,一个是2^n,而另一个是4^n,增长比前者快

3.1-5
从图像出发,这个定理是显而易见的……证明的话,只要利用3个符号的定义,构造常数c1,c2就可以了

3.1-6
直接由Theorem 3.1可得

3.1-7
这题主要想要表达的意思,是2个“小”符号的严格小于性

3.1-8
简单的仿写题,这题的背景,可能是图论算法中,时间复杂度可能和两个变量有关系时的符号表达。

这一章数学符号,题目比较简单,而且用公式编辑器写起来比较复杂,略过。


Problems

3-1 Asymptotic behaviour of polynomials
这题和exercise 3.1-2组合在一起,就能够得出一个可以用来简化计算复杂度的手段,就是多项式形式的复杂度,可以只看最高次
此题的证明就是对exercise 3.1-2那个解法的扩展,同样是利用单调性和极限来计算最大最小值

3-2 Relative asymptotic growths
几个asymptotic的比较,无穷大的比较,高数记得不多了,不过洛必达法则很强大!

3-3 Ordering by asymptotic growth rate
screenshot.png

3-4 Asymptotic notation properties
(a)
(b)
(c) screenshot.png

(d)同上,由此可以得出规律,只要是两边同时作用了递增的法则,那么big-oho notation 就可以“吸收”那个作用法则
(e)对于大于1的正整数而言,其平方必然比本身大,而f(n)是一个正整数值的函数,故而该式成立
(f)对同一个不等式的不同解释而已,只要把参数除过去即可
(g) screenshot.png
(h)这个性质表现了“大吃小”的法则

3-5 Variations On O and big-omega
(a)
这里引入了一个新的记号 Omega infinity(样子怪怪的),说是只要满足有无穷多的n,f(n) >= cg(n)即可,这里注意到它和原来的oemga-notation的差别在于:
omega-notation是对一个特定的n0之后“所有的”n,都保证了这个不等式成立
omega-infinity则是只要有“无限个”n满足不等式就可以了,也就是说,可以有时候大,有时候小。

这里如果引入omega-infinity notation,那么两个函数f(n), g(n), f(n)<=c*g(n),如果找不到一个n0,使得等式成立,那么就意味着,在现在选取的n0,之后,一定存在着一个使得等式不成立的点,将n0移到那个点,还是能够找到下个一个不满足等式的点,如此以至无穷,说明,两个式子,要么符号big-oho notation 要么符合omega-infinity notation。
但是omega-notation却并不和big-oho notation构成这样的关系。

(b)
在我看来,omega-notation在刻画best-case running time的时候,虽说是严格的,但不一定是逼近的!而omega-infinity 则是逼近的,因为,总是有无穷过的点比它大,又有无穷多的点比它小。

(c)
我看不出这个对算法分析有什么用。。。f(n)作为算法步骤的执行时间,应该天生非负才对吧。。

(d)
仿写题,比较简单。

3-6 Iterated functions
screenshot.png
0 0