| data structure | algorithm |
|---|---|
| Array | General Coding |
| Stack / Queue | In-order/Pre-order/Post-order traverSal |
| PriorityQueue (heap) | Greedy |
| LinkedList (single / double) | Recursion / Backtrace |
| Tree / Binary Tree | Breadth-first search |
| Binary Search Tree | Depth-first search |
| Hash Table | Divide and Conquer |
| Disjoint Set | Dynamic Programming |
| Trie | Binary Search |
| BloomFilter | Graph |
| LRU Cache |
时间复杂度\空间复杂度
- O(1): 常数复杂度
- O(log n): 对数复杂度
- O(n): 线性时间复杂度
- O(n^2): 平方
- O(n^3): 立方
- O(2^n): 指数
- O(n!): 阶乘
O(1)
var i int = 100
fmt.Println(i)
O(log n)
for i := 0; i < n; i = i * 2 {
fmt.Println(i)
}
O(n)
for i := 0; i < n; i++ {
fmt.Println(i)
}
O(n^2)
for i := 0; i < n; i++ {
for j := 0; j < n; j++ {
fmt.Println(i)
}
}
O(k^n)
for i := 0; i < math.Pow(2, n); i++ {
fmt.Println(i)
}
O(n!)
for i := 0; i < factorial(n); i++ {
fmt.Println(i)
}
