算法复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.什么是算法?算法必须满足的五个特性是什么?
算法:一组有穷的规则,规定了解决某一特定类型问题的一系列运算。(有限指令的集合,遵循它可以完成一个特定的任务).
必须满足的五个特性是(遵循以下五条准则):
1.有穷(限)性
2.确定性
3.可(能)行性
4.输入(n≥0)
5.输出(n≥1)
2.对算法进行分析分哪两个阶段?各自完成什么任务(分别得到什么结果)?
对一个算法要作出全面的分析可分成两个阶段进行,即:事前分析和事后测试。
事前分析求出该算法的一个时间界限函数;
事后测试搜集此算法的执行时间和实际占用空间的统计资料。
3.证明:若f1(n)=O(g1(n))并且f2(n)= O(g2(n)),那么f1(n) +f2(n)=
O(max{g1(n), g2(n)}
证明:
根据f1(n)=O(g1(n))可知,存在正常数C1,当n≥n0时,使得|f1(n)|≤
C1|g1(n)|;
同理,根据f2(n)= O(g2(n))可知,存在正常数C2,当n≥n0时,使得|f2(n)|≤C2|g2(n)|
当n≥n0时,|f1(n)+f2(n)|≤|f1(n)|+|f2(n)|≤C1|g1(n)|+C2|g2(n)|≤
C1|g k(n)|+C2|g k(n)|
≤(C1+C2)|g k(n)|,其中g k(n)=max{g1(n),g2(n)},k={1,2}
当n≥n0时,取C=(C1+C2),据定义命题得证。
4.如果f
1(n)= Θ(g
1
(n))并且f
2
(n)= Θ(g
2
(n)),下列说法是否正确?试说明
之。
(a) f1(n) +f2(n)= Θ(g1(n)+ g2(n))
(b) f1(n) +f2(n)= Θ(min{g1(n), g2(n)})
(c) f1(n) +f2(n)= Θ(max{g1(n), g2(n)})
答:(a)和(c)均正确,(b)错误。
(a)正确可以根据定义直接证得。
(b)错误可举反例。例:f1(n)= 2n,f2(n)=2 n2
下面证明(c)正确性.
根据上题已经证明f1(n)+f2(n)= O(max{g1(n),g2(n)}),下面只需证明
f 1(n)+f
2
(n)= Ω(max{g
1
(n), g
2
(n)}),即存在正常数C,使得|f
1
(n)+f
2
(n)|≥
C(max{g
1(n), g
2
(n)})
根据f1(n)= Θ(g1(n))并且f2(n)= Θ(g2(n)) 得到,当n≥n0时,存在正常数C1、C2、C3、C4
C 1|g
1
(n)|≤|f
1
(n)|≤C
3
|g
1
(n)|
C
2|g
2
(n)|≤|f
2
(n)|≤C
4
|g
2
(n)|
不妨设max{g1(n), g2(n)}= g1(n)
由于|f1(n)+f2(n)|≥||f1(n)|-|f2(n)||≥|C1|g1(n)|-C3|g2(n)||
=C|max{g
1(n), g
2
(n)}|
取C≥|C1-C3|的正常数,由定义得
f 1(n)+f
2
(n) = Ω(max{g
1
(n), g
2
(n)})
命题得证。
5.证明 |「log
2
n」|= O(n) 证明:对于任意的正整数n,
|「log
2n」|≤|log
2
(n+1)|≤|n+1|≤2|n|
取n0=1,C=2,根据定义知命题成立。
6.证明 3n「log
2
n」= O(n2)
证明:对于任意的正整数n,|3n「log2n」|≤|3n「log2n」|≤3|n2| 取n0=1,C=3,根据定义知命题成立。
7.用数学归纳法证明:当n≥1时,∑
=
+ =
n
i
n
n
i
1
2/)1
(.
证明:当n=1时,∑
==
n
i
i
1
1,n(n+1)/2=1,命题成立;
假设n=k-1时,∑
=
+ =
n
i
n
n
i
1
2/)1
(成立;(k≥2)
当n=k时,∑
=
+ =
n
i
n
n
i
1
2/)1
(=k
k
k
i
n
i
+
-
=
∑
=1
2/)1
(=k(k+1)/2
综上可知,命题成立。
8.在下列情况下求解递归关系式
T(n)=
()
2(/2)()
g n
T n f n
⎧
⎨
+
⎩否则
足够小
n
当①n=2k g(n)= O(1)和f(n)= O(n);
②n=2k g(n)= O(1)和f(n)= O(1)。
解: T(n)=T(2k)=2 T(2k-1)+f(2k)=2(2 T(2k-2)+f(2k-1)) +f(2k)
=22T(2k-2)+21 f(2k-1)+ f(2k)