时间/空间复杂度介绍及举例

        解决一个问题时,我们可以想到很多不同的方法,进而产生了不同的很多代码,在都能正确解决问题的前提下,一般用时间/空间复杂度来衡量一个代码的质量高低。

        关于时间复杂度和空间复杂度的问题,我们可以看这篇文章,对于这两个概念介绍得很清楚:(4条消息) 时间复杂度和空间复杂度(超详细)_霜迟Boan的博客-CSDN博客_时间复杂度和空间复杂度        OK,了解了这两个概念后,我们还需要知道,我们平常所说的渐进增长阶的概念:渐进增长阶常用来表示算法程序运行消耗的时间与空间。所以我们就明白了,增长阶其实就是一个程序或者算法时间和空间复杂度的简单统称。因为我们在执行一段程序时,通常会有判断、循环等结构出现,判断或循环的次数会随着实际情况( counter n)改变,换句话说,随着判断、循环等次数的增加,程序的所执行的时间和执行过程中所占的空间一般也会增大,这就需要渐进增长阶(时间/空间复杂度)来描述。

        下面,我们就利用之前我们提到的 两种常用排序方法 的例子,(链接如下)

(4条消息) C语言最常用的2种排序方法_Endorphin、舟的博客-CSDN博客 

来说明一下这两种算法的时间和空间复杂度:

1.选择排序法:

       时间复杂度:O(n^2)

       空间复杂度:O(1)

2.冒泡排序:

时间复杂度:最好的情况(顺序)O(n)      /最坏的情况(逆序)O(n^2) 

空间复杂度:O(1)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值