美文网首页
复杂度分析-上

复杂度分析-上

作者: 花椒人生 | 来源:发表于2020-05-10 20:10 被阅读0次

    复杂度分析

    为什么要进行复杂度分析:
      我们为了分析,统计算法的执行效率,但是我们又不需要集体的测试数据来测试。所以我们就需要一个时间,空间复杂度分析方法。
      研究算法的最终目的,就是为了解决,快执行,省空间。首当其冲的就是要分析算法复杂度

    1、时间复杂度

    1、表示算法的执行时间与数据规模之间的增长关系;
    2、只关注循环执行次数最多的代码;
    3、加法法则:总的时间复杂度等于量级最大的那段代码的复杂度;
    4、乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积;

    常见的时间复杂度:
    1、O(1):大O时间表示法,只要算法中不存在循环语句,递归语句,即使有成千上万的代码,他的时间复杂度也是O(1);
    2、O(logn)、O(nlogn):在采用大O标记时间复杂度的时候,可以忽略系数,既O(Cf(n)) = O(f(n));
    3、O(m + n)、O(m * n) :在无法事先评估m 与 n 谁的量级更大时,原来的加法法则就不正确了,需要将加法法则改为:T1(m) + T2(n) = O(f(m) + f(n)),但是乘法法则继续有效:T1(m) * T2(n) = O(f(m) * f(n));

    2、时间复杂度

    1. 表示算法的存储空间与数据规模之间的增长关系;
    2. 常见的空间复杂度:O(1)、O(n)、O(logn);

    越高阶复杂度的算法,执行效率越低。常见复杂度从低阶到高阶有:O(1)、O(logn)、O(n)、O(nlogn)、O(n²);

    相关文章

      网友评论

          本文标题:复杂度分析-上

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