当前位置:   article > 正文

时间和空间复杂度的计算方法_时间空间复杂度怎么算

时间空间复杂度怎么算

时间复杂度与空间复杂度都是针对算法而言的,我们知道数据+算法=程序,那么一个程序在运行过程中,必然要占用计算机的内存资源,而计算结果也需要时间;

那么我们可以这样理解:

时间复杂度 = 程序运行的时间;

空间复杂度 = 程序占用的内存;

但是对于运行时占用的时间,根据运行环境的不同,其结果也是不同的,所以在数学上,使用一个公式来表示:大O符号表示法 即 T(n) = O(f(n))

时间复杂度:

    对于没有循环结构的普通算法:T(n) = O(1)

    对于有循环结构的算法:T(n) = O(n)

  1. for(i=1; i<=n; ++i)
  2. {
  3. j = i;
  4. j++;
  5. }

      对于有循环嵌套结构的算法:T(n) = O(n^2)

  1. for(x=1; i<=n; x++)
  2. {
  3. for(i=1; i<=n; i++)
  4. {
  5. j = i;
  6. j++;
  7. }
  8. }

以此类推:T(n) = O(n^3),T(n) = O(n^4) .......T(n) = O(n^n)

  对于循环中有乘法的算法:T(n) = O(logn)

  1. int i = 1;
  2. while(i<n)
  3. {
  4. i = i * 2;
  5. }

组合一下:T(n) = O(nlogn)

  1. for(m=1; m<n; m++)
  2. {
  3. i = 1;
  4. while(i<n)
  5. {
  6. i = i * 2;
  7. }
  8. }

其他以此类推;

空间复杂度:S(n) = O(f(n))

  空间复杂度主要针对的是变量:

      int i = 1;S(n) = O(1)

     int[] a = new int[n]; S(n) = O(n)

     int[] a = new int[n][n]; S(n) = O(n^2)

其他以此类推;

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/546448
推荐阅读
相关标签
  

闽ICP备14008679号