算法复习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档