《算法导论(原书第3版)》一思考题

简介: 本节书摘来自华章出版社《算法导论(原书第3版)》一 书中的第3章,第3.3节,作者:(美)Thomas H.Cormen,Charles E.Leiserson,Ronald L.Rivest,Clifford Stein,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

思考题

3-1 (多项式的渐近行为) 假设p(n)=∑di=0aini是一个关于n的d次多项式,其中ad>0,k是一个常量。使用渐近记号的定义来证明下面的性质。

a.若k≥d,则p(n)=O(nk)。

b.若k≤d,则p(n)=Ω(nk)。

c.若k=d,则p(n)=Θ(nk)。

d.若k>d,则p(n)=o(nk)。

e.若k

3-2 (相对渐近增长) 为下表中的每对表达式(A,B)指出A是否是B的O、o、Ω、ω或Θ。假设k≥1、ε>0且c>1均为常量。回答应该以表格的形式,将“是”或“否”写在每个空格中。

screenshot

3-3 (根据渐近增长率排序)

a.根据增长的阶来排序下面的函数,即求出满足g1=Ω(g2),g2=Ω(g3),…,g29=Ω(g30)的函数的一种排列g1,g2,…,g30。把你的表划分成等价类,使得函数f(n)和g(n)在相同类中当且仅当f(n)=Θ(g(n))。
61

lg(lgn)2lgn(2)lgnn2n!(lgn)!

32nn3lg2nlg(n!)22nn1/lgn

lnlnnlg*nn·2nnlglgnlnn1

2lgn(lgn)lgnen4lgn(n+1)!lgn

lg*(lgn)22lgnn2nnlgn22n+1

b.给出非负函数f(n)的一个例子,使得对所有在(a)部分中的函数gi(n),f(n)既不是O(gi(n))也不是Ω(gi(n))。

3-4 (渐近记号的性质) 假设f(n)和g(n)为渐近正函数。证明或反驳下面的每个猜测。

a.f(n)=O(g(n))蕴涵g(n)=O(f(n))。

b.f(n)+g(n)=Θ(min(f(n),g(n)))。

c.f(n)=O(g(n))蕴涵lg(f(n))=O(lg(g(n))),其中对所有足够大的n,有lg(g(n))≥1且f(n)≥1。

d.f(n)=O(g(n))蕴涵2f(n)=O(2g(n))。

e.f(n)=O((f(n))2)。

f.f(n)=O(g(n))蕴涵g(n)=Ω(f(n))。

g.f(n)=Θ(f(n/2))。

h.f(n)+o(f(n))=Θ(f(n))。

3-5 (O与Ω的一些变形) 某些作者用一种与我们稍微不同的方式来定义Ω;假设我们使用Ω∞(读作“Ω无穷”)来表示这种可选的定义。若存在正常量c,使得对无穷多个整数n,有f(n)≥cg(n)≥0,则称f(n)=Ω∞(g(n))。

a.证明:对渐近非负的任意两个函数f(n)和g(n),或者f(n)=O(g(n))或者f(n)=Ω∞(g(n))或者二者均成立,然而,如果使用Ω来代替Ω∞,那么该命题并不为真。
62

b.描述用Ω∞代替Ω来刻画程序运行时间的潜在优点与缺点。

某些作者也用一种稍微不同的方式来定义O;假设使用O′来表示这种可选的定义。我们称f(n)=O′(g(n))当且仅当f(n)=O(g(n))。

c.如果使用O′代替O但仍然使用Ω,定理3.1中的“当且仅当”的每个方向将出现什么情况?

有些作者定义O(读作“软O”)来意指忽略对数因子的O:
O(g(n))={f(n):存在正常量c,k和n0,使得对所有n≥n0,有0≤f(n)≤cg(n)lgk(n)}

d.用一种类似的方式定义Ω和Θ。证明与定理3.1相对应的类似结论。

3-6 (多重函数) 我们可以把用于函数lg中的重复操作符应用于实数集上的任意单调递增函数f(n)。对给定的常量c∈R,我们定义多重函数f*c为
f*c(n)=min{i≥0:f(i)(n)≤c}

该函数不必在所有情况下都为良定义的。换句话说,值f*c(n)是为缩小其参数到c或更小所需要函数f重复应用的数目。

对如下每个函数f(n)和常量c,给出f*c(n)的一个尽量紧确的界。

screenshot

相关文章
|
存储 Python
在Python中,字典(`dict`)的键(key)具有唯一性
在Python中,字典(`dict`)的键(key)具有唯一性
901 1
|
8月前
|
分布式计算 Java 大数据
Java 的持久魅力:为何在现代技术栈中依然不可替代
Java 的持久魅力:为何在现代技术栈中依然不可替代
|
Dubbo Java 应用服务中间件
|
人工智能
SynCamMaster:快手联合浙大、清华等大学推出的多视角视频生成模型
SynCamMaster是由快手科技联合浙江大学、清华大学等机构推出的全球首个多视角视频生成模型,能够结合6自由度相机姿势,从任意视点生成开放世界视频。该模型通过增强预训练的文本到视频模型,确保不同视点的内容一致性,支持多摄像机视频生成,并在多个应用场景中展现出巨大潜力。
361 4
SynCamMaster:快手联合浙大、清华等大学推出的多视角视频生成模型
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
494 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
人工智能 自然语言处理 Linux
Ollama可以玩GLM4和CodeGeeX4了,快来魔搭玩起来
GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本。在语义、数学、推理、代码和知识等多方面的数据集测评中, GLM-4-9B 在各项能力上均表现出卓越的能力。
|
消息中间件 存储 Kafka
谈一谈Kafka在高性能和数据一致性之间做的妥协与改进
CAP定理是分布式系统的基本定理,描述了一致性、可用性和分区容错性三大特性,只能满足两种,开发者必须在此做出取舍。而 Kafka 作为一款高性能的消息队列与分布式存储系统,必然要在高性能和数据一致性之间做出取舍,本文在这方面做了一番探索。
|
前端开发 搜索推荐 数据可视化
阿里低代码引擎 LowCodeEngine 正式开源!
低代码引擎是一款为低代码平台开发者提供的,具备强大扩展能力的低代码研发框架。
3055 0
阿里低代码引擎 LowCodeEngine 正式开源!
|
内存技术
一文教你彻底学会SPI协议
一文教你彻底学会SPI协议
1999 0