空间复杂度
描述算法运行时占用的额外存储空间随输入规模增长的渐近趋势,是评估算法内存效率的核心指标。
核心定义
- 空间复杂度:算法运行时占用的额外存储空间随输入规模 $n$ 增长的渐近上界,记为 $O(f(n))$
- 不包含输入参数:分析空间复杂度时,输入参数本身占用的空间不计算在内
- 只看额外空间:关注算法自己申请了多少额外空间来存储数据
快速估算方法
实用技巧:看算法申请了多少额外空间
| 空间使用 | 空间复杂度 | 示例 |
|---|---|---|
| 只用临时变量 | $O(1)$ | 几个 int/指针变量 |
| 创建大小为 n 的数组 | $O(n)$ | int[] arr = new int[n] |
| 创建 n×n 的二维数组 | $O(n^2)$ | int[][] matrix = new int[n][n] |