算法之算法分析

本文详细介绍了算法分析中的渐进记号,包括ΘΘ、OO、oo、ΩΩ和ωω的定义及性质,以及它们在算法时间复杂度分析中的作用。通过实例解释了这些记号如何描述算法的运行效率,并讨论了和式的估计与界限,如Master定理的应用。内容适合对算法分析感兴趣的读者深入理解算法效率评估。
摘要由CSDN通过智能技术生成

算法分析

在很多情况下,描述一个算法的运行时间是有用的,为此,需要定义一套统一的算法渐进记号来合适的描述算法的运行效率。然后我们通过各种方法对不同的算法运行效率进行分析。

算法时间复杂度记号

Θ Θ 渐进紧确界

定义一:设 f(n) f ( n ) g(n) g ( n ) 是定义域为自然数集合的函数。如果 limnf(n)g(n) lim n → ∞ f ( n ) g ( n ) 存在,并且等于某个常数 c(c>0) c ( c > 0 ) ,那么 f(n)=Θ(g(n)) f ( n ) = Θ ( g ( n ) ) 。通俗理解为 f(n) f ( n ) g(n) g ( n ) 同阶, Θ Θ 用来表示算法的精确阶。

Θ(g(n))={ f(n):limnf(n)g(n)=c|c>0} Θ ( g ( n ) ) = { f ( n ) : lim n → ∞ f ( n ) g ( n ) = c | c > 0 }

定义二:若存在正常量 c1 c 1 c2 c 2 ,使得对于足够大的 n n ,函数 f ( n ) 能“夹入” c1g(n) c 1 g ( n ) c2g(n) c 2 g ( n ) 之间,则 f(n) f ( n ) 属于集合 Θ(g(n)) Θ ( g ( n ) ) ,记作 f(n)Θ(g(n)) f ( n ) ∈ Θ ( g ( n ) ) 。作为代替,我们通常记“ f(n)=Θ(g(n)) f ( n ) = Θ ( g ( n ) ) ”。

Θ(g(n))={ f(n):c1,c2,n0,nn0,0c1g(n)f(n)c2g(n)} Θ ( g ( n ) ) = { f ( n ) : ∃ c 1 , c 2 , n 0 , ∀ n ≥ n 0 , 0 ≤ c 1 g ( n ) ≤ f ( n ) ≤ c 2 g ( n ) }

O O 渐进上界

定义:设 f ( n ) g(n) g ( n ) 是定义域为自然数集 N N 上的函数。若存在正数 c n0 n 0 ,使得对一切 nn0 n ≥ n 0 都有 0f(n)cg(n) 0 ≤ f ( n ) ≤ c g ( n ) 成立,则称 f(n) f ( n ) 的渐进的上界是 g(n) g ( n ) ,记作 f(n)=O(g(n)) f ( n ) = O ( g ( n ) ) 。通俗的说n满足一定条件范围内,函数 f(n) f ( n ) 的阶不高于函数 g(n) g ( n )

O(g(n))={ f(n):c,n0,nn0,0f(n)cg(n)} O ( g ( n ) ) = { f ( n ) : ∃ c , n 0 , ∀ n ≥ n 0 , 0 ≤ f ( n ) ≤ c g ( n ) }

例如:设 f(n)=n2+n f ( n ) = n 2 + n ,则
f(n)=O(n2) f ( n ) = O ( n 2 ) ,取 c=2 c = 2 , n0=1 n 0 = 1 即可
f(n)=O(n3) f ( n ) = O ( n 3 ) ,取 c=1 c = 1 , n0=2 n 0 = 2 即可。显然,O(n^2)作为上界更为精确。

o o 非渐进紧确上界

定义1:设 f ( n ) g(n) g ( n ) 是定义域为自然数集N上的函数。若对于任意正数 c c ,都存在 n 0 ,使得对一切 nn0 n ≥ n 0 都有 0f(n)<cg(n) 0 ≤ f ( n ) < c g ( n ) 成立,则称 f(n) f ( n ) 的渐进的非紧确上界是 g(n) g ( n ) ,记作 f(n)=o(g(n)) f ( n ) = o ( g ( n ) ) 。通俗的说 n n 满足一定条件范围内,函数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值