This commit is contained in:
krahets
2023-08-19 22:07:27 +08:00
parent 71c7786f51
commit 2e27ad1680
99 changed files with 283 additions and 283 deletions
@@ -2,11 +2,11 @@
comments: true
---
# 2.3.   空间复杂度
# 2.3   空间复杂度
「空间复杂度 Space Complexity」用于衡量算法占用内存空间随着数据量变大时的增长趋势。这个概念与时间复杂度非常类似,只需将“运行时间”替换为“占用内存空间”。
## 2.3.1.   算法相关空间
## 2.3.1   算法相关空间
算法运行过程中使用的内存空间主要包括以下几种:
@@ -292,7 +292,7 @@ comments: true
```
## 2.3.2.   推算方法
## 2.3.2   推算方法
空间复杂度的推算方法与时间复杂度大致相同,只需将统计对象从“计算操作数量”转为“使用空间大小”。
@@ -656,7 +656,7 @@ comments: true
```
## 2.3.3.   常见类型
## 2.3.3   常见类型
设输入数据大小为 $n$ ,常见的空间复杂度类型有(从低到高排列):
@@ -1978,7 +1978,7 @@ $$
再例如“数字转化为字符串”,输入任意正整数 $n$ ,它的位数为 $\log_{10} n$ ,即对应字符串长度为 $\log_{10} n$ ,因此空间复杂度为 $O(\log_{10} n) = O(\log n)$ 。
## 2.3.4.   权衡时间与空间
## 2.3.4   权衡时间与空间
理想情况下,我们希望算法的时间复杂度和空间复杂度都能达到最优。然而在实际情况中,同时优化时间复杂度和空间复杂度通常是非常困难的。