一、时间复杂度
- 定义:时间复杂度描述了算法运行时间随输入大小增长而增长的趋势。它主要关注的是算法中最耗时的部分,并忽略常数因子、低阶项等细节。
- 表示方法:通常使用大O符号(Big O notation)来表示时间复杂度。例如,O(1) 表示常数时间复杂度,意味着无论输入多大,算法执行所需的时间都是固定的;O(n) 表示线性时间复杂度,意味着算法的执行时间与输入规模成正比;O(n^2) 则表示当输入规模增加时,算法的执行时间将以平方的速度增长。
- 重要性:了解一个算法的时间复杂度可以帮助开发者选择最适合特定应用场景的解决方案,尤其是在处理大数据集时尤为重要。
- 常用的时间复杂度所耗费的时间从大到小依次是:
O(1) < O(logn) < O(n) < O(nlogn) < O(n²) < O(n³) < O(2ⁿ) < O(n!) < O(nⁿ)