算法设计期中试卷平时作业参考解答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《算法分析与设计》2012-2013-2学期期中测试(信息安全专业DQ 教学班)

姓名: 学号: 得分:

1. 证明()()()()()()()O f n O g n O f n g n +=+。(10分)

证明:对于任意f 1(n ) ∈ O (f (n )),存在正常数c 1和自然数n 1,使得对所有n ≥ n 1,有f 1(n ) ≤ c 1f (n )成立。 类似,对于任意g 1(n ) ∈ O (g (n )),存在正常数c 2和自然数n 2,使得对所有n ≥ n 2,有g 1(n ) ≤ c 2g (n )成立。

令c 3 = max{c 1, c 2},n 3 = max{n 1, n 2},则对所有的n ≥ n 3,有 f 1(n ) +g 1(n ) ≤ c 1f (n ) + c 2g (n ) ≤ c 3f (n ) + c 3g (n ) = c 3(f (n ) + g (n ))

即()()()()()()()O f n O g n O f n g n +=+成立。

2. 将下列5个函数按渐近增长率由低至高进行排序,要求写出比较过程。(15分)

100log 2log loglog 12345()(log ),()log ,()log ,()2,()n n n n f n n n f n n f n n n f n f n +=====

解: 100log 2log log log 24()log 100log ,()2log ,n n n f n n n f n n n +====

(1) 2()f n 是对数函数的幂,5()f n 是幂函数,因此()25()()f n O f n =; (2) ()()()491105log lim

lim

lim log n n n f n n n

n n f n n →∞

→∞→∞===∞,因此()54()()f n O f n =; (3) ()()

423log 1lim

lim

lim 0log n n n f n n n f n n n n

→∞

→∞→∞===,因此()43()()f n O f n =;

(4) 对1()f n 和3()f n 取对数,有

()()() 13log ()log loglog loglog ,log ()2log loglog log f n n n n n n n f n n n n =+=Θ=Ω=+=Θ,

因为()log n O n =,所以()31()()f n O f n =;

因此,5个函数按渐近增长率由低至高排序为25431(),(),(),(),()f n f n f n f n f n 。

3. 给定按升序排列的n 个不同整数存于数组a [1:n ]中,请设计()log O n 的算法找到下标i ,1i n ≤≤,使得a [i ] = i ,如不存在这样的下标,则返回0。(15分) 解:

令head = 1, rear = n .

(1) 当head <= rear 时,令mid = ⌊(head + rear)/2⌋; (2) 如果a [mid] = mid ,返回mid 值,结束。

如果a [mid] > mid ,令rear = mid – 1,返回(1)继续执行; 如果a [mid] < mid ,令head = mid + 1,返回(1) 继续执行; (3)返回0值,结束。

public static int Search(int [] a, int n) {

. <= a[n -1] 中搜索 a[i] = i

利用主方法给出下列递归式的渐近界,并用数学归纳法证明式(2)的渐近界。(20

分)

(1) ()()42T n T n n =+, (2) ()()242T n T n n =+, (3) ()()342T n T n n =+

解:(1) 24,2,log log 42,b a b a ==== ()(

)

2, if 0.5,f n n O n εε-===

因此,()()

2T n n =Θ. (2) 24,2,log log 42,b a b a ==== ()()22,f n n n ==Θ

因此,()()

2log T n n n =Θ.

(3) 24,2,log log 42,b a b a ==== ()(

)

32, if 0.5,f n n n εε+==Ω=

而且()()()3

33424234,f n n n n cf n ==≤=其中34n =,

因此,()()

3T n n =Θ.

证明:假设当k n <时,()2log T k ck k ≤,其中c 为常数。

()()()()()()2

2

22222242 42log 2 log 1 log 1 log if 1

T n T n n c n n n cn n n cn n c n cn n c =+≤+=-+=--≤≥

因此,命题得证。

5. 利用直接展开法求解下列递归式的渐近界。(20分)

(1) ()()242T n T n n =+, (2) (

)T n n =+

解:(1)

()()()()

()()()

()()()()()2

2222222

232423322log log 2222424422422442224234242log 1log log k k n n T n T n n T n n n T n n T n n n T n n T n kn T n n n n T n n O n n =+=++=+=++=+=

=+=

=+=+=

相关文档
最新文档