美文网首页On lzq ways
时间和空间复杂度

时间和空间复杂度

作者: zhengqiuliu | 来源:发表于2019-04-14 18:36 被阅读3次

    数据结构和算法可以分开理解,数据结构主要是让系统能用更省的空间来存储更多的数据,算法主要解决系统快速计算缩短响应时间。所以学习数据结构和算法这门课程的目的就是为系统节省空间,缩短时间。

    如何评估节省的时间,继而引出的时间复杂度的概念。

    时间复杂度:不是精确评估系统具体消耗多少时间,而是建立一种评估消耗时间的规则。具体规则为执行代码所消耗时间跟数据量增长的一种渐变关系。

    时间复杂度T(N) = O(f(N)),表示的只是一种渐变关系,所以只需要记录循环次数最多的那段代码的时间复杂度即可,可以忽略常数项,低阶项和系数。

    常见的时间复杂度有如下几种:

    O(1), O(logn), O(n), O(nlogn), O(n^2), O(n^k), O(2^N), O(n!) 

    O(2^n) 和 O(n!) 属于非多项式量式,复杂度随着n的增大会急剧增加。

    常见时间服务度渐变大小关系:O(1) < O(logn) < O(n) < O(nlogn) < O(n^2)

    空间复杂度:表示算法的存储空间与数据规模之间的增长关系。

    常见的空间复杂度:O(1), O(n), O(n^2)

    相关文章

      网友评论

        本文标题:时间和空间复杂度

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