概述
算法的优劣主要从算法的执行时间和所需要占用的存储空间两个方面衡量。
时间复杂度
时间复杂度用于衡量算法的时间开销与问题规模n之间的关系。记为
T(n)
统计算法效率的方式有以下几种:
- 事后统计
- 事前分析
事后统计的方式在统计算法时间容易受到计算机硬件、编程语言效率等环境因素影响。通常采取事先估计的方法来评价算法的时间复杂度。
算法中的语句执行次数称为语句频度或时间频度,记为T(n)
。关于输入问题规模n,有辅助函数 f(n)
来统计算法基本操作的频度,当n趋近于无穷大时,T(n)/f(n) 的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记为T(n)=O(f(n))
,称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。
public static void main(String[]