zoukankan      html  css  js  c++  java
  • Chapter3 复杂度分析(上):如何分析,统计算法的执行效率和资源消耗

    数据结构解决的问题:“快” + “省”,即为时间,空间复杂度分析

    1:为什么需要复杂度分析?

    因为通过统计手段分析的结果受到两个因素的影响,一:测试结果非常依赖测试环境,二:测试结果受数据规模的影响很大

    2:大O复杂度表示法

    所有代码的执行时间T(n)与每行代码的执行次数n成正比。

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

    3:时间复杂度分析渐进时间复杂度

    1:只关注循环执行次数最多的一段代码

    2:加法法则:总复杂度等于量级最大的那段代码的复杂度

    3:乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积

    4:几种常见时间复杂度量级:

    多项式量级:

    常数阶O(1)

    u 对数阶O(logn)

    线性阶O(n)

    线性对数阶O(nlogn)

    平方阶O(n*n),立方阶O(n*n*n)… k方阶O(n*……*n)

    非多项式量级:

    指数阶O(2*……*2)

    阶乘阶O(n!)

    5:空间复杂度分析: 渐进空间复杂度

    常见的空间复杂度:O(1) O(n) O(n*n)

  • 相关阅读:
    Demo
    Demo
    Demo
    Demo
    Demo
    【csp模拟赛6】树上统计-启发式合并,线段树合并
    【csp模拟赛6】计数--单调栈
    【csp模拟赛6】相遇--LCA
    【poj1734】Sightseeing trip--无向图最小环
    【poj2709】Painter--贪心
  • 原文地址:https://www.cnblogs.com/zhaohu/p/9974988.html
Copyright © 2011-2022 走看看