Squash the language code blocks and fix list.md (#865)

This commit is contained in:
Yudong Jin
2023-10-16 12:06:00 -05:00
committed by GitHub
parent 346c8451de
commit faa44fecd2
52 changed files with 409 additions and 10482 deletions

View File

@ -719,253 +719,23 @@ $$
需要注意的是,在循环中初始化变量或调用函数而占用的内存,在进入下一循环后就会被释放,因此不会累积占用空间,空间复杂度仍为 $O(1)$
=== "Python"
```python title="space_complexity.py"
[class]{}-[func]{function}
[class]{}-[func]{constant}
```
=== "C++"
```cpp title="space_complexity.cpp"
[class]{}-[func]{func}
[class]{}-[func]{constant}
```
=== "Java"
```java title="space_complexity.java"
[class]{space_complexity}-[func]{function}
[class]{space_complexity}-[func]{constant}
```
=== "C#"
```csharp title="space_complexity.cs"
[class]{space_complexity}-[func]{Function}
[class]{space_complexity}-[func]{Constant}
```
=== "Go"
```go title="space_complexity.go"
[class]{}-[func]{function}
[class]{}-[func]{spaceConstant}
```
=== "Swift"
```swift title="space_complexity.swift"
[class]{}-[func]{function}
[class]{}-[func]{constant}
```
=== "JS"
```javascript title="space_complexity.js"
[class]{}-[func]{constFunc}
[class]{}-[func]{constant}
```
=== "TS"
```typescript title="space_complexity.ts"
[class]{}-[func]{constFunc}
[class]{}-[func]{constant}
```
=== "Dart"
```dart title="space_complexity.dart"
[class]{}-[func]{function}
[class]{}-[func]{constant}
```
=== "Rust"
```rust title="space_complexity.rs"
[class]{}-[func]{function}
[class]{}-[func]{constant}
```
=== "C"
```c title="space_complexity.c"
[class]{}-[func]{func}
[class]{}-[func]{constant}
```
=== "Zig"
```zig title="space_complexity.zig"
[class]{}-[func]{function}
[class]{}-[func]{constant}
```
```src
[file]{space_complexity}-[class]{}-[func]{constant}
```
### 线性阶 $O(n)$
线性阶常见于元素数量与 $n$ 成正比的数组、链表、栈、队列等:
=== "Python"
```python title="space_complexity.py"
[class]{}-[func]{linear}
```
=== "C++"
```cpp title="space_complexity.cpp"
[class]{}-[func]{linear}
```
=== "Java"
```java title="space_complexity.java"
[class]{space_complexity}-[func]{linear}
```
=== "C#"
```csharp title="space_complexity.cs"
[class]{space_complexity}-[func]{Linear}
```
=== "Go"
```go title="space_complexity.go"
[class]{}-[func]{spaceLinear}
```
=== "Swift"
```swift title="space_complexity.swift"
[class]{}-[func]{linear}
```
=== "JS"
```javascript title="space_complexity.js"
[class]{}-[func]{linear}
```
=== "TS"
```typescript title="space_complexity.ts"
[class]{}-[func]{linear}
```
=== "Dart"
```dart title="space_complexity.dart"
[class]{}-[func]{linear}
```
=== "Rust"
```rust title="space_complexity.rs"
[class]{}-[func]{linear}
```
=== "C"
```c title="space_complexity.c"
[class]{hashTable}-[func]{}
[class]{}-[func]{linear}
```
=== "Zig"
```zig title="space_complexity.zig"
[class]{}-[func]{linear}
```
```src
[file]{space_complexity}-[class]{}-[func]{linear}
```
如下图所示,此函数的递归深度为 $n$ ,即同时存在 $n$ 个未返回的 `linear_recur()` 函数,使用 $O(n)$ 大小的栈帧空间:
=== "Python"
```python title="space_complexity.py"
[class]{}-[func]{linear_recur}
```
=== "C++"
```cpp title="space_complexity.cpp"
[class]{}-[func]{linearRecur}
```
=== "Java"
```java title="space_complexity.java"
[class]{space_complexity}-[func]{linearRecur}
```
=== "C#"
```csharp title="space_complexity.cs"
[class]{space_complexity}-[func]{LinearRecur}
```
=== "Go"
```go title="space_complexity.go"
[class]{}-[func]{spaceLinearRecur}
```
=== "Swift"
```swift title="space_complexity.swift"
[class]{}-[func]{linearRecur}
```
=== "JS"
```javascript title="space_complexity.js"
[class]{}-[func]{linearRecur}
```
=== "TS"
```typescript title="space_complexity.ts"
[class]{}-[func]{linearRecur}
```
=== "Dart"
```dart title="space_complexity.dart"
[class]{}-[func]{linearRecur}
```
=== "Rust"
```rust title="space_complexity.rs"
[class]{}-[func]{linear_recur}
```
=== "C"
```c title="space_complexity.c"
[class]{}-[func]{linearRecur}
```
=== "Zig"
```zig title="space_complexity.zig"
[class]{}-[func]{linearRecur}
```
```src
[file]{space_complexity}-[class]{}-[func]{linear_recur}
```
![递归函数产生的线性阶空间复杂度](space_complexity.assets/space_complexity_recursive_linear.png)
@ -973,151 +743,15 @@ $$
平方阶常见于矩阵和图,元素数量与 $n$ 成平方关系:
=== "Python"
```python title="space_complexity.py"
[class]{}-[func]{quadratic}
```
=== "C++"
```cpp title="space_complexity.cpp"
[class]{}-[func]{quadratic}
```
=== "Java"
```java title="space_complexity.java"
[class]{space_complexity}-[func]{quadratic}
```
=== "C#"
```csharp title="space_complexity.cs"
[class]{space_complexity}-[func]{Quadratic}
```
=== "Go"
```go title="space_complexity.go"
[class]{}-[func]{spaceQuadratic}
```
=== "Swift"
```swift title="space_complexity.swift"
[class]{}-[func]{quadratic}
```
=== "JS"
```javascript title="space_complexity.js"
[class]{}-[func]{quadratic}
```
=== "TS"
```typescript title="space_complexity.ts"
[class]{}-[func]{quadratic}
```
=== "Dart"
```dart title="space_complexity.dart"
[class]{}-[func]{quadratic}
```
=== "Rust"
```rust title="space_complexity.rs"
[class]{}-[func]{quadratic}
```
=== "C"
```c title="space_complexity.c"
[class]{}-[func]{quadratic}
```
=== "Zig"
```zig title="space_complexity.zig"
[class]{}-[func]{quadratic}
```
```src
[file]{space_complexity}-[class]{}-[func]{quadratic}
```
如下图所示,该函数的递归深度为 $n$ ,在每个递归函数中都初始化了一个数组,长度分别为 $n$、$n-1$、$\dots$、$2$、$1$ ,平均长度为 $n / 2$ ,因此总体占用 $O(n^2)$ 空间:
=== "Python"
```python title="space_complexity.py"
[class]{}-[func]{quadratic_recur}
```
=== "C++"
```cpp title="space_complexity.cpp"
[class]{}-[func]{quadraticRecur}
```
=== "Java"
```java title="space_complexity.java"
[class]{space_complexity}-[func]{quadraticRecur}
```
=== "C#"
```csharp title="space_complexity.cs"
[class]{space_complexity}-[func]{QuadraticRecur}
```
=== "Go"
```go title="space_complexity.go"
[class]{}-[func]{spaceQuadraticRecur}
```
=== "Swift"
```swift title="space_complexity.swift"
[class]{}-[func]{quadraticRecur}
```
=== "JS"
```javascript title="space_complexity.js"
[class]{}-[func]{quadraticRecur}
```
=== "TS"
```typescript title="space_complexity.ts"
[class]{}-[func]{quadraticRecur}
```
=== "Dart"
```dart title="space_complexity.dart"
[class]{}-[func]{quadraticRecur}
```
=== "Rust"
```rust title="space_complexity.rs"
[class]{}-[func]{quadratic_recur}
```
=== "C"
```c title="space_complexity.c"
[class]{}-[func]{quadraticRecur}
```
=== "Zig"
```zig title="space_complexity.zig"
[class]{}-[func]{quadraticRecur}
```
```src
[file]{space_complexity}-[class]{}-[func]{quadratic_recur}
```
![递归函数产生的平方阶空间复杂度](space_complexity.assets/space_complexity_recursive_quadratic.png)
@ -1125,77 +759,9 @@ $$
指数阶常见于二叉树。观察下图,高度为 $n$ 的“满二叉树”的节点数量为 $2^n - 1$ ,占用 $O(2^n)$ 空间:
=== "Python"
```python title="space_complexity.py"
[class]{}-[func]{build_tree}
```
=== "C++"
```cpp title="space_complexity.cpp"
[class]{}-[func]{buildTree}
```
=== "Java"
```java title="space_complexity.java"
[class]{space_complexity}-[func]{buildTree}
```
=== "C#"
```csharp title="space_complexity.cs"
[class]{space_complexity}-[func]{BuildTree}
```
=== "Go"
```go title="space_complexity.go"
[class]{}-[func]{buildTree}
```
=== "Swift"
```swift title="space_complexity.swift"
[class]{}-[func]{buildTree}
```
=== "JS"
```javascript title="space_complexity.js"
[class]{}-[func]{buildTree}
```
=== "TS"
```typescript title="space_complexity.ts"
[class]{}-[func]{buildTree}
```
=== "Dart"
```dart title="space_complexity.dart"
[class]{}-[func]{buildTree}
```
=== "Rust"
```rust title="space_complexity.rs"
[class]{}-[func]{build_tree}
```
=== "C"
```c title="space_complexity.c"
[class]{}-[func]{buildTree}
```
=== "Zig"
```zig title="space_complexity.zig"
[class]{}-[func]{buildTree}
```
```src
[file]{space_complexity}-[class]{}-[func]{build_tree}
```
![满二叉树产生的指数阶空间复杂度](space_complexity.assets/space_complexity_exponential.png)