算法的(渐进)时间复杂度和空间复杂度
时间复杂度用大O符号表示
如果一个算法对于任何大小为的输入,它至多需要【5n^3+3n】的时间【存在假设】运行完毕,那么它的渐近时间复杂度是【O(n^3)】。
计算时间复杂度的过程,常常需要分析一个算法运行过程中需要的基本操作,计量所有操作的数量。基本操作可在固定时间内完成,因此总运行时间和操作的总数量最多相差一个常量系数。
一个算法中的语句执行次数称为语句频度或时间频度。记为T(n),若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为常数(不等于零),则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度
依据事件复杂度可以对算法进行分类,如线性时间,指数时间
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。主要由算法在运行过程中临时占用的存储空间决定。