第三讲 算法的复杂度分析与最优算法

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

第一章引论

2

增长阶

例:

sum=0;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

sum++;

3

增长阶

T(n)=O(n2)

4

算法分析的基本法则

非递归算法:

(1)for / while 循环

循环体内计算时间*循环次数;

(2)嵌套循环

循环体内计算时间*所有循环次数;

(3)顺序语句

各语句计算时间相加;

(4)if-else语句

if语句计算时间和else语句计算时间的较大者。

5

递归算法复杂性分析

(

=

)

9

10

最优算法

如何证明算法A是最优算法?

1.分析算法的最差情况复杂度W

A

(n),

2.建立算法A所解决的问题的复杂度下界W

[A](n) 。

即对于所有规模为n的输入,证明与算法A同类的所有算法(包括已知的和未知的)的最差情况复杂度≥W[A](n) ,

3.If W

A (n) = Θ( W

[A]

(n) )则算法A是最优算法。

11

例:查找最大元素

Algorithm A (顺序查找算法)

int findMax(int[] E, int n)

1. int max;

2. max = E[0]; // Assume the first is max.

3. for (index = 1; index < n; index++)

4. if (max < E[index])

5. max = E[index];

6. return max;

12

W A(n)

算法的基本运算是将数组中的元素两两进行比较,每个元素都至少比较一次,因此该算法的最差情况以及最佳情况和平均情况下的复杂度都一样。所以这个算法的最差情况复杂度为:

W A(n) = n-1 ∈Θ(n)

13

W[A](n)

所有通过比较方式进行查找的算法构成类[A],

推导W[A](n)

因为考虑的是这类算法的最差情况复杂度,不妨设输

入数组的元素是互不相同的。

既然n元数组中的元素各不相同,所以数组的最大元素

只能有一个,即其余的n−1个元素都不会是最大元素。

而对于这n−1个元素中的每一个来说,要判定它不是数

组的最大元素,至少得找到一个比它更大的元素,因

此需要至少一次比较。所以为了找出最大元素,算法

至少需要n−1次比较,即W[A](n) = n –1。

由W A(n) = W[A](n), 算法A 是最优算法.

14

增长阶比较

15

增长阶比较(n<15)

16

补充:算法渐近复杂性分析中常用函数

(1)单调函数

单调递增:m≤n⇒f(m) ≤f(n);

单调递减:m≤n⇒f(m) ≥f(n);

严格单调递增:m< n⇒f(m) < f(n);

严格单调递减:m< n⇒f(m) > f(n).

(2)取整函数

⎣x ⎦:不大于x的最大整数;

⎡x⎤:不小于x的最小整数。

17

取整函数的若干性质

x-1 < ⎣x ⎦≤x ≤⎡x⎤< x+1;

⎣n/2⎦+ ⎡n/2 ⎤= n;

对于n≥0,a,b>0,有:

⎡⎡n/a⎤/b⎤= ⎡n/ab⎤;

⎣⎣n/a ⎦/b ⎦= ⎣n/ab⎦;

⎡a/b⎤≤(a+(b-1))/b;

⎣a/b ⎦≥(a-(b-1))/b;

f(x)= ⎣x ⎦, g(x)= ⎡x⎤为单调递增函数。

18

(3)多项式函数

p(n)= a

+a1n+a2n2+…+a d n d;a d>0;

p(n) = Θ(n d);

f(n) = O(n k) ⇔f(n)多项式有界;

f(n) = O(1) ⇔f(n) ≤c;

k ≥d⇒p(n) = O(n k) ;

k ≤d⇒p(n) = Ω(n k) ;

k >d⇒p(n) = o(n k) ;

k < d⇒p(n) = ω(n k) .

19

22

(5)对数函数log n = log 2n ;lg n = log 10n ;ln n = log e n ;log k n = (log n )k ;

log log n = log(log n );for a>0,b>0,c>0

a

b b a log =

24(6)阶乘函数

00

)!1(1!>=⎩⎨⎧−=n n n n n n

n "321!⋅⋅=

The End

25

相关文档
最新文档