0
点赞
收藏
分享

微信扫一扫

【算法设计】第二章 分析基础

想溜了的蜗牛 2022-02-01 阅读 100
算法

算法效率评价的指标:

算法对计算机资源的使用:

        1.计算资源(时间)

                

         2.存储资源(内存)

                

 计算机资源的计量方法:

设输入数据/问题规模为n。假设算法要用到:

(1)m元运算;

(2)每种元运算执行的时间t1,t2,…,tm

(3)每种元运算执行的次数为e1,e2,…,em

(4)元运算与问题规模的关系:ei (n)1≤i≤m

若用T(n)表示时间复杂度,则有

元运算的提取及时间复杂度的计算:

【例 2-1 】编程输出具有下述特点的 n × n 阶三角矩阵,试分

析该算法的时间复杂度。

数学基础:

函数的渐近的界

问题规模:T(n)

渐近态:T'(n)

定义2.1 f g 是定义域为自然数集N上的函数。

(1) c>0 n 0 >0 使得所有 n  ≥ n0   , 0 ≤ f(n)  ≤ c*g (n )成立, 则称 f(n) 渐近上界 g(n), 记作 : f(n)=Ο(g(n))

(2) c>0 n 0 >0 使得所有的n  ≥ n0   , 0 ≤ c*g(n) ≤ f(n) ,则 称 f(n) 渐近下界 g(n), 记作 : f(n)=Ω(g(n))

(3) 若对于 c>0 都存在非负整数 n 0 , 使得当 n≥ n 0 时有0 ≤ f(n) < c*g (n) 成立,则称函数 f(n) n 充分大时, g(n)低阶,记为 f(n)=o(g(n))

(4) c>0 都存在 n 0 >0 ,使得当n≥ n0时有0 ≤ c*g (n ) ≤ f(n)  成立,则称函数f(n) g(n) 高阶,记为 f(n)=ω(g(n))

(5) f(n)=Ο(g(n)) f(n)=Ω(g(n))时,则记 f(n) = Θ(g (n )), 称g(n) f(n) 渐近的紧的界 f(n) g(n)同阶。   c 2 g(n)≤f(n)≤c 1 g(n)

【例 2-2】设有函数 f(n)=n** 2 +3n+1,当n足够大时,试证明下述内容:

(1) f(n)=O(n 2 ) f(n)=O(n 3 ) 成立;

(2) f(n)=o(n 2 ) 不成立。

证明:

(1) f(n)=n** 2 +3n+1< n** 2 +3n** 2 +n** 2 =5n** 2 则存在 c=5 使得当 n≥1时, f(n)=O(n** 2 ) 成立。

又因为 5n** 2 ≤5n** 3 ,所以,存在 c=5 使得当 n≥1 时, f(n)=O(n** 3 ) 成立。

(2) 要使 n** 2 +3n+1<n** 2 就要使 1+3/n+1/n 2 <1 ,显然这不成立。

也就是说,找不到一个 n 0 ,当 n≥n 0 c为任意小时,使得 f(n)=o(n 2 ) 成立。

定理 2.1( 传递性 ) f g h 是定义域为自然数集合,

如果 f=O(g) g=O(h) ,那么 f=O(h)

如果 f=Ω(g) g=Ω(h) ,那么 f=Ω(h)

如果 f=Θ(g) g=Θ(h) ,那么 f=Θ(h)

定理 2.2 f=O(h) g=O(h) ,那么 f+g=O(h)

利用极限求函数渐近的界

 

 

 

 

有用的求和级数及推导方法:

 

 

基本效率类型

举报

相关推荐

0 条评论