时间复杂度和空间复杂度分析
1.算法的时间复杂度分析:
假设一个算法是由n条指令序列所构成的集合,则:
算法的执行时间=(指令序列(i)的执行次数*单个序列(i)的执行时间)
算法的执行时间与指令序列的执行次数之和成正比(单个序列的执行时间大约相同)。通过计算程序中语句频度之和估算一个算法的执行时间,所以语句频度就是语句重复执行的次数。
时间复杂度T(n)=O( 算法中所有语句的执行次数的和)
最好,最坏和平均时间复杂度。
2.算法的空间复杂度分析:
程序运行所需的存储空间包括两部分。
(1)固定空间需求:主要包括算法本身的程序代码,常量,变量所占的空间;
(2)可变空间需求:与所处理问题的规模有关。主要包括输入的数据元素所占的存储空间和程序运行过程中所需要的额外空间。
由于固定空间基本由问题的规模决定,所以在计算算法的空间复杂度时,主要考虑程序运行过程中的额外空间。
时间复杂度和空间复杂度是评价算法优缺点的重要指标!!!
大O符号是由德国数论学家保罗·巴赫曼(Paul Bachmann)在其1892年的著作《解析数论》(Analytische Zahlentheorie)首先引入的。而这个记号则是在另一位德国数论学家艾德蒙·朗道(Edmund Landau)的著作中才推广的,因此它有时又称为朗道符号(Landau symbols)。代表“order of ...”(……阶)的大O,最初是一个大写的希腊字母'Ο'(omicron),现今用的是大写拉丁字母‘O’,但从来不是阿拉伯数字‘0’。
- 中文名
- 空间复杂度
- 外文名
- space complexity