基本概念
时间复杂度表示的是算法执行所需的时间与输入数据规模之间的关系,通常用大O符号表示(如O(n)、O(n²)等)。
常见的时间复杂度
-
O(1) - 常数时间:无论输入多大,执行时间都固定
- 示例:访问数组中的某个元素
-
O(log n) - 对数时间:执行时间随输入规模呈对数增长
- 示例:二分查找
-
O(n) - 线性时间:执行时间与输入规模成正比
- 示例:遍历数组
-
O(n log n) - 线性对数时间:比线性慢但比平方快
- 示例:快速排序、归并排序
-
O(n²) - 平方时间:执行时间与输入规模的平方成正比
- 示例:简单的双重循环排序(如冒泡排序)
-
O(2ⁿ) - 指数时间:执行时间随输入规模呈指数增长
- 示例:解决某些递归问题