算法分析与设计(一)——时间复杂度

一、P,NP和NPC问题

P:能在多项式时间复杂度内解决
NP:能在多项式时间复杂度检查进行验证
NPC:已经证明的,无法在多项式时间复杂度内解决

  • 启发式算法
  • 近似算法
  • 暴搜
  • 参数算法

如何评价算法优劣?

  • 简洁易懂
  • 效率高(时间复杂度和空间复杂度)

算法运行时间的估计
T ( n ) = c o p C ( n ) T(n)=c_{op}C(n) T(n)=copC(n)
c o p c_{op} cop为一个基本操作需要的时间, C ( n ) C(n) C(n)是需要执行基本操作的次数
算法效率

  • 最差效率
  • 最优效率
  • 平均效率

2 n , n ! 2^n,n! 2n,n!统称为指数时间复杂度,其他的统称为多项式时间复杂度
渐近时间复杂度:忽略系数和低次项

  • O(上界)
  • Ω \Omega Ω(下界)
  • Θ \Theta Θ(近界)

f ( n ) = O ( f ( n ) ) , f ( n ) + g ( n ) = O ( f ( n ) ) + O ( f ( n ) ) = 2 O ( f ( n ) ) = O ( f ( n ) ) f(n)=O(f(n)),f(n)+g(n)=O(f(n))+O(f(n))=2O(f(n))=O(f(n)) f(n)=O(f(n)),f(n)+g(n)=O(f(n))+O(f(n))=2O(f(n))=O(f(n))
2 l o g n + l o g l o g n = 2 l o g n ∗ 2 l o g l o g n = n l o g n 2^{logn+loglogn}=2^{logn}*2^{loglogn}=nlogn 2logn+loglogn=2logn2loglogn=nlogn
考点:根据时间复杂度排序

你可能感兴趣的:(算法分析与设计)