美文网首页
数据结构-0-时间复杂度和空间复杂度

数据结构-0-时间复杂度和空间复杂度

作者: yulongsun | 来源:发表于2016-09-04 21:58 被阅读158次

    1. 算法的复杂度:

    • 算法的复杂度分为时间复杂度和空间复杂度。
      • 时间复杂度,是衡量算法执行时间的长度;
      • 空间复杂度,是衡量算法存储空间的大小;

    2. 时间复杂度

    • 时间频度: 一个算法中语句执行次数,记为T(n);

    • 时间复杂度:描述T(n)的变化规律,记作:T(n)=O(f(n));

      • 大O记法:用来体现算法复杂度的标记。一般情况下,随着n的增大,T(n)增长最慢的称为最优算法。
      • 时间频度不同,但时间复杂度可能相同。如:T(n)=n2+3n+4与T(n)=4n2+2n+1它们的频度不同,但时间复杂度相同,都为O(n2)。
    • 推导大O阶:

      1. 用常数1取代运行时间中所有的加法常数,如O(1)
      2. 在修改后的运行次数憨厚,只保留最高阶数,如n2+n为O(n2)
      3. 如果最高阶数存在且不是1,则去除与这个项相乘的常数,如3n3为O(n3)
    • 常见时间复杂度:

      1. 常数阶


        常数阶
      2. 线性阶


        线性阶
      3. 对数阶


        对数阶
      4. 平方阶


        平方阶
      5. 对比图


        对比图
      6. 常用时间复杂度大小


        常用时间复杂度大小关系
    • 最坏时间复杂度:
      最坏情况下的时间复杂度称最坏时间复杂度。一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度。 这样做的原因是:最坏情况下的时间复杂度是算法在任何输入实例上运行时间的上界,这就保证了算法的运行时间不会比任何更长。

    3. 空间复杂度

    算法的空间复杂度通过计算算法所需的存储空间实现,算法的空间复杂度的计算公式为: S(n) = O(f(n))。
    通常没有特别指明时,复杂度指的是时间复杂度,我们写代码时,要学会以空间来换取时间。


    参考:
    大话数据结构开篇:时间复杂度和空间复杂度

    相关文章

      网友评论

          本文标题:数据结构-0-时间复杂度和空间复杂度

          本文链接:https://www.haomeiwen.com/subject/nnfkettx.html