算法设计与分析——常见的复杂度

	思考:lim(x->)(f(x) / g(x)) = α, 当 α 取值不同的时候,会有什么情况发生呢?
	结论:
		  α = c (常数)	=> f(x) = θ(g(x)) 或者 g(x) = θ(f(x))
		  α = 0   		=> f(x) = o(g(x))
		  α ==> g(x) = o(f(x))
	证明:
		α = c 时:
			所有 ε > 0, 存在 N, 当 n > N 时
			有 |f(x) / g(x) - α| < ε
			所以 α - ε < f(x) / g(x) < α + ε
			所以 (α - ε) g(x) < f(x) < (α + ε) g(x)
			令 ε = α / 2, c2 = α - ε, c1 = α + ε
			则 c2 g(x) < f(x) < c1 g(x) (c1 > 0, c2 > 0)
			所以 f(x) = θ(g(x)) 或者 g(x) = θ(f(x))
		α = 0 时:
			所有 ε > 0, 存在 N, 当 n > N 时
			有 |f(x) / g(x) - α| < ε
			所以 -ε < f(x) / g(x) < ε
			即 f(x) < ε g(x)
			所以 f(x) = o(g(x))
		α = ∞ 时:
			因为 lim(x->)(f(x) / g(x)) = ∞
			所以 lim(x->)(g(x) / f(x)) = 0
			所以 g(x) = o(f(x))f(x) = ω(g(x))
1、α = 0 时,g(x) 比 f(x) 高一级,所以是严格上界
2、α = ∞ 时,f(x) 比 g(x) 高一级,所以 f(x) 是 g(x) 的严格上界,g(x) 是 f(x) 的严格下界
3、c 一般是大于 0 的,因为两个正数的商取极限最终结果 大于等于 0
4、所有的复杂度函数都是非递减的
5、上面的这种证明方法可以用来 比较两个复杂度函数的大小* 、证明下面的定理*
定理2:
	多项式 f(n) = ak n ^ k + a(k - 1) n ^ (k - 1) + --- + a1 n + a0 (ak > 0)
		f(n) = θ(n ^ k)
定理3f(n) = O(g(n)) <=> g(n) = Ω(f(x))
	f(n) = o(g(n)) <=> g(n) = ω(f(x))
定理41) f(n) = θ(g(n)) <=> g(n) = θ(f(n))
	2)f(n) >= g(n) 或者 g(n) = O(f(n))O(f(n) +/- g(n)) = O(f(n)) 
	   	  Ω(f(n) +/- g(n)) = Ω(f(n))
1、f(n) >= g(n) 和 g(n) = O(f(n)) 都包含了 f(n) 和 g(n) 同阶的情况,注意当同阶做减为 0 的时候没意义
复杂度排行:
	1 < log n < n ^ α (0 < α < 1) < n < n log n < n ^ (1 + α) (α > 0) < 2 ^ n < n! < n ^ n ...
  线性|              亚线性       |线性|            多项式            |        指数
示例:
	1) log n = o(n ^ α) (α > 0)
	2) log n = ω(1)
	3) n log n = o(n ^ (1 + α)) (α > 0)
	4) n ^ α = o(2 ^ n) (α > 0)
1、注: 
	   1) O(1) 和 O(2) 表示一个级别
	   2) O(2 ^ n) 和 O(3 ^ n) 表示一个级别
	   这些都是同一级别的不同表示方式,他们表示的内涵一样,只是记号不一样而已
2、f(x) = O(n ^ α) (α > 0) 为多项式级别,我们称这种算法是可行的、简单的,当然,谁也不会认为 n ^ 80 次方是容易的,
   一般α最多取到 3 (长辈的经验之谈)
   	非多项式级别(指数级别)我们称算法是不可行的,只能解决规模 n 较小的问题

如果文章有什么内容错误的话,欢迎评论区留言,小编一定会尽快改正的!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值