【数据结构】时间复杂度(加法乘法规则、渐近时间复杂度、循环时间复杂度总结

2.2 时间复杂度

  • 什么是时间复杂度?

    评估算法时间开销

    T ( n ) = O ( f ( n ) ) T(n)=O(f(n)) T(n)=O(f(n))

    在实际求解中,只留表达式中最高阶的部分,丢弃其他部分。

  • 如何求解?

    • 求解步骤

      1.找到一个最深层的基本操作;

      2.分析该操作执行次数x问题规模n的关系** x = f ( n ) x=f(n) x=f(n)**;

      3.x的数量级 O ( x ) O(x) O(x)就是时间复杂度 T ( n ) T(n) T(n)

    • 求解原则

      1.顺序执行的代码只会影响常数项,可忽略。

      2.只需挑一个基本操作分析它的执行次数与n的关系即可。

      3.如果有多层嵌套循环,只需关注最深层循环了几次。

  • 规则

    • 1.加法规则

      T ( n ) = T 1 ( n ) + T 2 ( n ) = O ( f ( n ) ) + O ( g ( n ) ) = O ( m a x ( f ( n ) , g ( n ) ) ) T(n)=T_1(n)+T_2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n))) T(n)=T1(n)+T2(n)=O(f(n))+O(g(n))=O(max(f(n),g(n)))

    • 2.乘法规则

      T ( n ) = T 1 ( n ) ∗ T 2 ( n ) = O ( f ( n ) ) ∗ O ( g ( n ) ) = O ( f ( n ) ∗ g ( n ) ) T(n)=T_1(n)*T_2(n)=O(f(n))*O(g(n))=O(f(n)*g(n)) T(n)=T1(n)T2(n)=O(f(n))O(g(n))=O(f(n)g(n))

  • 常见渐近时间复杂度

    O ( 1 ) < O ( l o g 2 n ) < O ( n ) < O ( n l o g 2 n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n ! ) < O ( n n ) O(1)<O(log_2n)<O(n)<O(nlog_2n)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n) O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)

  • 时间复杂度分类

    最坏时间复杂度、平均时间复杂度、最好时间复杂度

    只考虑最坏时间复杂度

  • 循环时间复杂度总结

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值