常见算法的时间与空间复杂度

 

常见算法的时间与空间复杂度

 

~~~总结一些概念便于随时查看

1.什么是时间复杂度(渐进时间复杂度)?

  简单来说,时间复杂度即是一个算法运行花费的时间。

2.如何求?

  问题规模为n的一个算法内基本语句执行次数记为T(n),此时另一个函数f(n),当n趋近于无穷大时T(n)/f(n)为一个不等于零的常数,则该算法的时间复杂度记为O(f(n));

  f(n)越小,时间复杂度越低,算法效率越高。

  

1 for(i=1; i<=n; ++i)
2 {
3     for(j=1; j<=n; ++j)
4     {
5         c[i][j] = 0;//该步骤属于基本操作执行次数:n的平方次
6         for(k=1; k<=n; ++k)
7             c[i][j] += a[i][k] * b[k][j];//该步骤属于基本操作执行次数:n的三次方次
8     }
9 }

  此处引用百科代码,T(n)=n3+n2,令f(n)=n3,此时T(n)/f(n)满足条件,则该代码的时间复杂度为O(n3)。

3.什么是空间复杂度(渐进空间复杂度)?

  空间复杂度描述算法运行过程中临时占用的存储空间。

  算法在计算机上的存储空间包括:

  1)算法本身代码的存储空间;

  2)算法的数据(输入输出的数据)的存储空间;

  3)算法在运行过程中临时占用的存储空间;

4)如何求?

  一般简单算法的空间复杂度为O(1),一般的递归算法为O(n),具体的分析需要根据算法中分配存储空间代码所处的位置(此处仅考虑代码本身的存储空间)。

转载于:https://www.cnblogs.com/lfz1211/p/9647226.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值