zoukankan      html  css  js  c++  java
  • Java数据结构(六)—— 时间复杂度和空间复杂度

    时间复杂度和空间复杂度

    度量一个程序执行时间的两种方法

    1. 事后统计的方法

      两个问题:

      1. 相对设计的算法的运行行能进行评测,需要实际运行程序

      2. 所得时间的通缉令依赖于计算机的硬件、软件等环境因素

    2. 事前估计法

      通过分析某个算法的时间复杂度来判断那个算法更优

    时间频度

    一个算法花费的时间与算法中语句的执行此时成正比,语句执行次数叫时间频度(语句频度),记为T(n)

    对于时间频度,可以忽略常数项,低次项和系数

    时间复杂度

    算法中的基本操作语句的重复执行次数时问题规模n的某个函数用T(n)表示,若某个辅助函数,使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常熟,则称f(n)是T(n)同数量级函数,记作T(n) = O(f(n)),称O(f(n))为算法的渐近时间复杂度,简称时间复杂度

    T(n)不同,但时间复杂度可能相同

    计算时间复杂度的方法

    • 常数1代替运行时间中的所有加法常数

    • 修改后的运行次数函数中,只保留最高阶项

    • 取出最高阶项的系数

    image-20201027131249222

    image-20201027131433959

    平均时间复杂度和最坏时间复杂度

    1. 平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,该算法的运行时间

    2. 最坏情况下的时间复杂度称为最坏时间复杂度,一般讨论时间复杂度军事最坏情况下的时间复杂度

    image-20201027131808028

    算法的空间复杂度

    image-20201027131934392

     所有源码都可在gitee仓库中下载:https://gitee.com/vvwhyyy/java_algorithm

  • 相关阅读:
    【BZOJ 4151 The Cave】
    【POJ 3080 Blue Jeans】
    【ZBH选讲·树变环】
    【ZBH选讲·拍照】
    【ZBH选讲·模数和】
    【CF Edu 28 C. Four Segments】
    【CF Edu 28 A. Curriculum Vitae】
    【CF Edu 28 B. Math Show】
    【CF Round 439 E. The Untended Antiquity】
    【CF Round 439 C. The Intriguing Obsession】
  • 原文地址:https://www.cnblogs.com/whystudyjava/p/14043299.html
Copyright © 2011-2022 走看看