算法设计与分析 2

算法分析基础:

问题:

 

1、算法的时间复杂度

2、时间复杂度的估算

3、问题的时间复杂度的上界和下界

4、NP完全问题

 

 

 

解决:

算法时间复杂度(贼重要)

通常有两种衡量算法效率的方法:

(1) 事后统计法(少用)

(2)事情分析估算法

时间复杂度估算:

因为

算法 = 控制结构 +原操作(固有的数据类型的操作)

所以

算法执行的时间 = 原操作的执行次数*原操作 的和(最坏的情况)

 

 

问题时间复杂度的上界和下界:

定义1:如果存在两个正常数c和n0,对于所有的n=n0,有|

f(n)|≤c|g(n)|,则记作f(n)=0(g(n))

定义2 :如果存在两个正常数c和n0,对于所有的n≥n0,有|

f(n)|≥c|g(n)|,则记作f(n)=Q(g(n))。

定义3:当f(N)=0(g(N))且f(N)=Q(g(N)) 时,则记

f(N)=θ(g(N))。也就是说f(N)与g(N)同阶

定义4:如果对于任意给定的S≥0,都存在非负整数NO,使得当

N≥NO时有f(N)sSg(N) ,则称函数f(N)当N充分大时,比g(N)低阶

记为f(N)=o(g(N))

定义5:若g(N)=o(f(N)),即当N充分大时,f(N) 的阶比g(N)

高,则记f(N)=W(g(N))

 

 

NP完全问题:(很难搞)

是问题的复杂度,本身的复杂度;

P类问题就是所有的复杂度为多项式时间的问题的集合。

posted @ 2020-05-21 16:07  赚钱买个打印机  阅读(184)  评论(0编辑  收藏  举报