数据结构与算法分析——数学基础

数据结构与算法分析——数学基础

  1. 如果存在正常数 c c c n 0 n_0 n0 使得当 N ≥ n 0 N \geq n_0 Nn0 T ( N ) ≤ c f ( N ) T(N) \leq cf(N) T(N)cf(N),则记为 T ( N ) = O ( f ( N ) ) T(N) = O(f(N)) T(N)=O(f(N))
  2. 如果存在正常数 c c c n 0 n_0 n0 使得当 N ≥ n 0 N \geq n_0 Nn0 T ( N ) ≥ c g ( N ) T(N) \geq cg(N) T(N)cg(N),则记为 T ( N ) = Ω ( g ( N ) ) T(N) = \Omega(g(N)) T(N)=Ω(g(N))
  3. T ( N ) = Θ ( h ( N ) ) T(N) = \Theta(h(N)) T(N)=Θ(h(N))当且仅当 T ( N ) = O ( h ( N ) ) T(N) = O(h(N)) T(N)=O(h(N)) T ( N ) = Ω ( h ( N ) ) T(N) = \Omega(h(N)) T(N)=Ω(h(N))
  4. 如果对每一正常数 c c c都存在常数 n 0 n_0 n0使得当 N > n 0 N > n_0 N>n0 T ( N ) < c p ( N ) T(N) < cp(N) T(N)<cp(N),则 T ( N ) = o ( p ( N ) ) T(N) = o(p(N)) T(N)=o(p(N))。有时也可以说,如果 T ( N ) = O ( p ( N ) ) T(N) = O(p(N)) T(N)=O(p(N)) T ( N ) ≠ Θ ( p ( N ) ) T(N) \neq \Theta(p(N)) T(N)=Θ(p(N)),则 T ( N ) = o ( p ( N ) ) T(N) = o(p(N)) T(N)=o(p(N))

上述定义的目的是要在函数间建立一种相对的级别。

1000 N = O ( N 2 ) 1000N = O(N^2) 1000N=O(N2)称为大O标记法 O ( N 2 ) O(N^2) O(N2)读作“大ON的平方”。

T ( N ) = O ( f ( N ) ) T(N) = O(f(N)) T(N)=O(f(N))时,我们是在保证函数 T ( N ) T(N) T(N)是在以不快于 f ( N ) f(N) f(N)的速度增长;因此 f ( N ) f(N) f(N) T ( N ) T(N) T(N)的一个上界。这意味着 f ( N ) = Ω ( T ( N ) ) f(N) = \Omega(T(N)) f(N)=Ω(T(N)),于是我们说 T ( N ) T(N) T(N) f ( N ) f(N) f(N)的一个下界。

如果 g ( N ) = 2 N 2 g(N) = 2N^2 g(N)=2N2,那么 g ( N ) = O ( N 4 ) g(N) = O(N^4) g(N)=O(N4) g ( N ) = O ( N 3 ) g(N) = O(N^3) g(N)=O(N3) g ( N ) = O ( N 2 ) g(N) = O(N^2) g(N)=O(N2)从技术上看都是成立的,但是最后一个是最佳选择。

  • 法则1:如果 T 1 ( N ) = O ( f ( N ) ) T_1(N) = O(f(N)) T1(N)=O(f(N)) T 2 ( N ) = O ( g ( N ) ) T_2(N) = O(g(N)) T2(N)=O(g(N)),那么
    • T 1 ( N ) + T 2 ( N ) = O ( f ( N ) + g ( N ) ) T_1(N) + T_2(N) = O(f(N) + g(N)) T1(N)+T2(N)=O(f(N)+g(N))
    • T 1 ( N ) ∗ T 2 ( N ) = O ( f ( N ) ∗ g ( N ) ) T_1(N) * T_2(N) = O(f(N) * g(N)) T1(N)T2(N)=O(f(N)g(N))
  • 法则2:如果 T ( N ) T(N) T(N)是一个 k k k次多项式,则 T ( N ) = Θ ( N k ) T(N) = \Theta(N^k) T(N)=Θ(Nk)
  • 法则3:对任意常数 k k k l o g k N = O ( N ) log^kN = O(N) logkN=O(N)。它告诉我们对数增长得非常缓慢。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值