一.时间复杂度
1.特点
时间复杂度:计算语句执行次数,语句执行次数中,规模最大的作为该代码的时间复杂度
2.方法
(1)终止条件
(2)找循环次数和循环变量的关系
(3)和n的关系
例如:



3.常见算法的时间复杂度
插入排序:O(n²)
冒泡排序:O(n²)
选择排序:O(n²)
快速排序:O(n log n)(最坏 O(n²))
归并排序:O(n log n)
堆排序:O(n log n)
二.空间复杂度
1.定义
算法除了输入数据本身外,额外开辟的空间
2. 常见
O(1):没开额外数组,只用几个变量
插入、冒泡、选择排序
O(n):开了一个长度为 n 的数组
归并排序、计数排序
O(log n):递归栈(如快排)
O(n):递归深度 n(如坏的快排)
- 插入排序
时间:O(n²) 空间:O(1)
- 交换排序(冒泡)
时间:O(n²) 空间:O(1)
- 关键路径
时间:O(n + e)(n顶点,e边) 空间:O(n + e)