中国科学院大学计算机算法设计与分析复习指导
1.什么是算法?算法必须满足的五个特性是什么?
算法:一组有穷的规则,规定了解决某一特定类型问题的一系列运算。(有
限指令的集合,遵循它可以完成一个特定的任务).
必须满足的五个特性是(遵循以下五条准则):
1.有穷(限)性
2.确定性
3.可(能)行性
4.输入(n≥0)
5.输出(n≥1)
2 .对算法进行分析分哪两个阶段?各自完成什么任务(分别得到什么结果)?
对一个算法要作出全面的分析可分成两个阶段进行,即:事前分析和事后测
试。
事前分析求出该算法的一个时间界限函数;
事后测试搜集此算法的执行时间和实际占用空间的统计资料。
3 .证明:若f (n)=O (g (n))并且f (n)=O (g (n)),那么f (n)+f (n)=O (max{g (n),
1 1 2 2 1 2 1
g (n)}
2
证明:
根据 f (n)=O(g (n))可知,存在正常数 C ,当n ≥n 时,使得|f (n)|≤C |g (n)|;
1 1 1 0 1 1 1
同理,根据 f (n)=O (g (n))可知,存在正常数 C ,当n ≥n 时,使得|f (n)|≤C |g (n)|
2 2 2 0 2 2 2
当n ≥n 时,|f (n)+f (n)|≤|f (n)|+|f (n)|≤C |g (n)|+C |g (n)| ≤C |g (n)|+C |g (n)|
0 1 2 1 2 1 1 2 2 1 k 2 k
≤ (C +C )|g (n)|, 其中 g (n)=max{g (n),g (n)},k={1,2}
1 2 k k 1 2
当n ≥n 时,取 C= (C +C ),据定义命题得证。
0 1 2
4.如果 f (n)= Θ(g (n))并且 f (n)= Θ(g (n)),下列说法是否正确?试说明之。
1 1 2 2
(a) f (n) +f (n)= Θ(g (n)+ g (n))
1 2 1 2
(b) f (n) +f (n)= Θ(min{g (n), g (n)})
1 2 1 2
(c) f (n) +f (n)= Θ(max{g (n), g (n)})
1 2 1 2
答:(a)和(c)均正确,(b)错误。
(a)正确可以根据定义直接证得。
(b)错误可举反例。例:f (n)= 2n,f (n)=2 n2
1 2
下面证明(c)正确性.
根据上题已经证明 f (n)+f (n)= O (max{g (n),g (n)}),下面只需证明
1 2 1 2
f (n)+f (n)= Ω(max{g (n), g (n)}),即存在正常数 C,使得|f (