美文网首页
时间复杂度

时间复杂度

作者: 小星star | 来源:发表于2019-03-06 19:02 被阅读14次

    算法的 时间复杂度

    一个算法最重要的 时间 和 空间

    无法在运行前得到具体的运行时间
    但是可以估算基本操作的执行次数

    在衡量算法的时候,有一个重要的指标 效率性;
    时间复杂度和空间复杂度用来表示效率性

    时间复杂度的定义:
    在计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。

    这个定义我看不出什么来。。

    时间复杂度如何计算??
    一个简单的例子:


    image.png

    下面的代码

    void eat1(int n){
         for(int i=0; i<n; i++){;
             System.out.println("等待一天");
             System.out.println("等待一天");
             System.out.println("吃一寸面包");
         }
    }
    

    这里的时间复杂度如何计算呢??
    这里有三条基本操作执行
    "等待一天"要执行n次;
    之后两条也是,那么他的时间复杂度就是 n + n + n = 3n
    消掉系数,变为了O(n)

    使用极限来消除掉系数以及尾项
    如何推导出时间复杂度呢?有如下几个原则:
    1. 如果运行时间是常数量级,用常数1表示;
    2. 只保留时间函数中的最高阶项;
    3. 如果最高阶项存在,则省去最高阶项前面的系数。

    T(n) = 3n
    T(n) = O(n)

    这个地方能练练手 https://blog.csdn.net/wydyd110/article/details/83069304

    相关文章

      网友评论

          本文标题:时间复杂度

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