Sort the coding languages by applications. (#721)

This commit is contained in:
Yudong Jin
2023-09-04 03:19:08 +08:00
committed by GitHub
parent 8d5e84f70a
commit 9c3b7b6422
55 changed files with 6826 additions and 6826 deletions

View File

@@ -12,10 +12,10 @@
![线性查找求解两数之和](replace_linear_by_hashing.assets/two_sum_brute_force.png)
=== "Java"
=== "Python"
```java title="two_sum.java"
[class]{two_sum}-[func]{twoSumBruteForce}
```python title="two_sum.py"
[class]{}-[func]{two_sum_brute_force}
```
=== "C++"
@@ -24,10 +24,16 @@
[class]{}-[func]{twoSumBruteForce}
```
=== "Python"
=== "Java"
```python title="two_sum.py"
[class]{}-[func]{two_sum_brute_force}
```java title="two_sum.java"
[class]{two_sum}-[func]{twoSumBruteForce}
```
=== "C#"
```csharp title="two_sum.cs"
[class]{two_sum}-[func]{twoSumBruteForce}
```
=== "Go"
@@ -36,6 +42,12 @@
[class]{}-[func]{twoSumBruteForce}
```
=== "Swift"
```swift title="two_sum.swift"
[class]{}-[func]{twoSumBruteForce}
```
=== "JS"
```javascript title="two_sum.js"
@@ -48,30 +60,6 @@
[class]{}-[func]{twoSumBruteForce}
```
=== "C"
```c title="two_sum.c"
[class]{}-[func]{twoSumBruteForce}
```
=== "C#"
```csharp title="two_sum.cs"
[class]{two_sum}-[func]{twoSumBruteForce}
```
=== "Swift"
```swift title="two_sum.swift"
[class]{}-[func]{twoSumBruteForce}
```
=== "Zig"
```zig title="two_sum.zig"
[class]{}-[func]{twoSumBruteForce}
```
=== "Dart"
```dart title="two_sum.dart"
@@ -84,6 +72,18 @@
[class]{}-[func]{two_sum_brute_force}
```
=== "C"
```c title="two_sum.c"
[class]{}-[func]{twoSumBruteForce}
```
=== "Zig"
```zig title="two_sum.zig"
[class]{}-[func]{twoSumBruteForce}
```
此方法的时间复杂度为 $O(n^2)$ ,空间复杂度为 $O(1)$ ,在大数据量下非常耗时。
## 哈希查找:以空间换时间
@@ -104,10 +104,10 @@
实现代码如下所示,仅需单层循环即可。
=== "Java"
=== "Python"
```java title="two_sum.java"
[class]{two_sum}-[func]{twoSumHashTable}
```python title="two_sum.py"
[class]{}-[func]{two_sum_hash_table}
```
=== "C++"
@@ -116,10 +116,16 @@
[class]{}-[func]{twoSumHashTable}
```
=== "Python"
=== "Java"
```python title="two_sum.py"
[class]{}-[func]{two_sum_hash_table}
```java title="two_sum.java"
[class]{two_sum}-[func]{twoSumHashTable}
```
=== "C#"
```csharp title="two_sum.cs"
[class]{two_sum}-[func]{twoSumHashTable}
```
=== "Go"
@@ -128,6 +134,12 @@
[class]{}-[func]{twoSumHashTable}
```
=== "Swift"
```swift title="two_sum.swift"
[class]{}-[func]{twoSumHashTable}
```
=== "JS"
```javascript title="two_sum.js"
@@ -140,32 +152,6 @@
[class]{}-[func]{twoSumHashTable}
```
=== "C"
```c title="two_sum.c"
[class]{hashTable}-[func]{}
[class]{}-[func]{twoSumHashTable}
```
=== "C#"
```csharp title="two_sum.cs"
[class]{two_sum}-[func]{twoSumHashTable}
```
=== "Swift"
```swift title="two_sum.swift"
[class]{}-[func]{twoSumHashTable}
```
=== "Zig"
```zig title="two_sum.zig"
[class]{}-[func]{twoSumHashTable}
```
=== "Dart"
```dart title="two_sum.dart"
@@ -178,6 +164,20 @@
[class]{}-[func]{two_sum_hash_table}
```
=== "C"
```c title="two_sum.c"
[class]{hashTable}-[func]{}
[class]{}-[func]{twoSumHashTable}
```
=== "Zig"
```zig title="two_sum.zig"
[class]{}-[func]{twoSumHashTable}
```
此方法通过哈希查找将时间复杂度从 $O(n^2)$ 降低至 $O(n)$ ,大幅提升运行效率。
由于需要维护一个额外的哈希表,因此空间复杂度为 $O(n)$ 。**尽管如此,该方法的整体时空效率更为均衡,因此它是本题的最优解法**。