博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法导论(第三版) 第三章思考题
阅读量:2458 次
发布时间:2019-05-11

本文共 1586 字,大约阅读时间需要 5 分钟。

http://www.cnblogs.com/Jiajun/archive/2013/05/06/3063574.html

3-1
a.

P(n)=i=0daini=ndi=0dainidndi=0daicnk
b.
P(n)=i=0dainindcnd
c. 由前两问可证。
d. 同a
e. 同b


3-2

A B O o Ω ω Θ
lgkn nϵ yes yes no no no
nk cn no no yes yes no
n nsinn no no no no no
2n 2n/2 no no yes yes no
nlgc clgn yes no yes no yes
lg(n!) lg(nn) yes no yes no yes


3-3
a.

22n+1>22n>(n+1)!>n!>en>n2n>2n>(3/2)n>(lgn)lgn=nlglgn>(lgn)!
>n3>n2=4lgn>nlgn=lg(n!)>n=2lgn>(2)lgn=n>22lgn>lg2n>lnn
>lgn>lnlnn>2lgn>lgn=lg(lgn)>lg(lgn)>n1/lgn=2=1
b. 非连续性函数或者震荡函数就能满足要求,比如
f(n)={
n,0, 1n>0  1n<0 


3-4
a. 错误,举个反例 n=O(n2) ,而 n2O(n)  
b. 错误,举个反例 n+n2=O(n2)O(min(n,n2))=O(n)  
c. 正确, f(n)=O(g(n)) 表明存在正常数 c,n0 对所有 nn0 都有 f(n)cg(n) ,所以也有 lgf(n)lg(cg(n)) ,得证
d. 正确, f(n)=O(g(n)) 表明存在正常数 c,n0 对所有 nn0 都有 f(n)cg(n) ,所以也有 2f(n)2cg(n) ,得证
e. 正确,同理可证。
f. 正确,定义直接证明。
g. 错误,举个反例 2n=Θ(2n)=ω(2n/2)
h. 正确, g(n)=o(f(n)) 表明存在正常数 n0 对于任意正常数 c ,对所有 nn0 都有 g(n)<f(n) ,所以对于所有 nn0 都有 f(n)+o(f(n)))<f(n)+f(n)=2f(n) ,得证。


3-5
a. 只要证明 f(n)=O(g(n)) 的补集包含于 f(n)=Ω(g(n)) 中即可。 f(n)=O(g(n)) 表示存在正常数 c,n0 对所有 nn0 都有 f(n)cg(n) ,那么他的补集是不存在常数 c,n0 对所有 nn0 都有 f(n)cg(n) ,显然包含于 f(n)=Ω(g(n)) 中,因为如果存在正常数c对有限个n的话成立的话,就能找到一个 n0 大于有限个n中最大的那个,使得 f(n)cg(n) 成立。但是如果换成 Ω(g(n)) 的话,3-3b中的例子就是个反例。
b. 用符号 Ω(f(n)) 可以保证在n足够大的情况下算法复杂度都不低于 f(n) ,即最好的情况下也不低于 f(n) 。而使用符号 Ω(f(n)) 则表示该算法在很多时候复杂度都不低于 f(n) ,但在某些比较好的情况下有可能会低于 f(n)
c. 没有变化?求指教
d.

Ω~(g(n))={
f(n):
c,k,n0>0nn00cg(n)lgk(n)f(n)}
Θ~(g(n))={
f(n):
c1,c2,k,n0>0nn00c1g(n)lgk(n)f(n)c2g(n)lgk(n)}
定理3.1由定义可知。


3-6
a.  Θ(n)
b.  Θ(lgn)
c.  Θ(lgn)
d.  Θ(lgn)
e.  Θ(lglgn)
f. 
g.  Θ(lglgn)
h. 不会,求指教

你可能感兴趣的文章
最佳 开源 人脸识别算法_本周最佳5篇文章:今年最佳开源,以及更多
查看>>
firefox 开源_一周最热门的5篇文章:移动版Firefox OS和年度开源奇迹
查看>>
18年开源前端框架排名_2014年排名前20位的开源故事
查看>>
十大开源项目_2014年十大开源访谈
查看>>
展望2019年_感谢您创纪录的一年(并展望2015年)
查看>>
go开源项目整理-新手篇_一周的前5篇文章:您正在从事什么开源项目?
查看>>
您不懂JavaScript,但您应该
查看>>
医疗项目 开源_免费和开源医疗保健成功的背后是什么?
查看>>
开源教学系统_通过开源进行教学和口语学习
查看>>
命令行python路径命令_探索命令行英雄中Python的过去,现在和未来
查看>>
Codethink开源是入职流程的一部分
查看>>
kubernetes 集群_使用k9s加速Kubernetes集群的管理
查看>>
fsf不推荐debian_FSF揭示了他们用于聊天,视频等的工具
查看>>
kubernetes 应用_Kubernetes如何保存我的桌面应用程序
查看>>
kubectl命令_系统管理员需要了解的9个kubectl命令
查看>>
ansible 视频_Jeff Geerling的Ansible 101视频以及更多Ansible新闻
查看>>
git meld不支持_不爱差异吗? 改用Meld
查看>>
为什么我从Mac切换到Linux
查看>>
spring 引入zuul_引入Zuul改进CI / CD
查看>>
使用bash默认环境_使用Bash炸鱼壳以获得漂亮的默认设置
查看>>