算法复杂度

算法的复杂度包含两方面:时间复杂度和空间复杂度。

一.算法的时间复杂度

    算法的时间复杂度的测量是对于给定问题,该算法所执行的基本运算的次数,对于不同的问题,选择的基本运算的类型不同。算法的时间复杂度可以分为最坏情况下的时间复杂度和平均情况下的时间复杂度。


二.算法的空间复杂度

    对于一个算法来说,对于内存空间的占用包括两方面:
  • 存储程序和输入数据的空间
  • 存储中间结果或操作单元所占用空间--额外空间 
    对于一个问题而已,存储数据所占用的空间对于每一个算法而已都是相同的,而对于存储程序的空间而言,由于存储程序的空间一般是常量(和输入的规模无关);对于不同的算法,需要存储的中间结果和操作是不相同的,因此,算法的空间复杂度主要考虑的是算法所占用的额外空间。
    当一个算法的额外空间相对于输入规模是常数时,称为原地工作算法





参考文献
[1] 屈婉玲, 算法设计与分析: 清华大学出版社, 2011.
[2] 科曼 and 金贵, 算法导论: 机械工业出版社, 2006.
[3] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, "算法导论 (影印版)," ed: 北京: 高等教育出版社.
[4] 汝佳. 算法竞赛入门经典[M]. 清华大学出版社, 2009.






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值