Algorithm Knowledge #
The following is algorithm-related knowledge compiled by the author. I hope to enumerate all common algorithms exhaustively. If anything is missing, everyone is welcome to give advice and submit PRs. Related problems are still being gradually organized, and explanatory articles are still being created.
Solving problems is only a means to improve algorithmic ability; the ultimate goal should be to improve one’s thinking ability. Knowledge needs to be condensed into blocks, so summarize these in the two sections of Chapter 1 and let it be sublimated~ I hope readers will come back to look at this table after finishing problem practice, so they can clearly organize their own knowledge system, check for gaps, and improve it as soon as possible.
| Algorithm | Specific Type | Related Problems | Explanatory Articles |
|---|---|---|---|
| Sorting Algorithms | 1. Bubble Sort 2. Insertion Sort 3. Selection Sort 4. Shell Sort 5. Quick Sort 6. Merge Sort 7. Heap Sort 8. Linear Sorting Algorithms 9. Introsort 10. Indirect Sort 11. Counting Sort 12. Radix Sort 13. Bucket Sort 14. External Sorting - k-Way Merge Loser Tree 15. External Sorting - Optimal Merge Tree | ||
| Recursion and Divide and Conquer | 1. Binary Search/Lookup 2. Multiplication of Large Integers 3. Strassen Matrix Multiplication 4. Chessboard Covering 5. Merge Sort 6. Quick Sort 7. Linear-Time Selection 8. Closest Pair of Points Problem 9. Round-Robin Tournament Schedule | ||
| Dynamic Programming | 1. Matrix Chain Multiplication Problem 2. Longest Common Subsequence 3. Maximum Subarray Sum 4. Optimal Triangulation of Convex Polygons 5. Polygon Game 6. Image Compression 7. Circuit Wiring 8. Flow Shop Scheduling 9. 0-1 Knapsack Problem/Nine Lectures on Knapsack 10. Optimal Binary Search Tree 11. Principles of Dynamic Programming Acceleration 12. Tree DP | ||
| Greedy | 1. Activity Selection Problem 2. Optimal Loading 3. Huffman Coding 4. Single-Source Shortest Path 5. Minimum Spanning Tree 6. Multi-Machine Scheduling Problem | ||
| Backtracking | 1. Loading Problem 2. Batch Processing Job Scheduling 3. Symbol Triangle Problem 4. n-Queens Problem 5. 0-1 Knapsack Problem 6. Maximum Clique Problem 7. m-Coloring Problem of Graphs 8. Traveling Salesman Problem 9. Circle Arrangement Problem 10. Circuit Board Arrangement Problem 11. Continuous Postage Problem | ||
| Search | 1. Enumeration 2. DFS 3. BFS 4. Heuristic Search | ||
| Randomization | 1. Random Numbers 2. Numerical Randomized Algorithms 3. Sherwood Algorithm 4. Las Vegas Algorithm 5. Monte Carlo Algorithm | 1. Calculate the Value of π 2. Calculate Definite Integrals 3. Solve Systems of Nonlinear Equations 4. Linear-Time Selection Algorithm 5. Skip List 6. n-Queens Problem 7. Integer Factorization 8. Majority Element Problem 9. Primality Testing | |
| Graph Theory | 1. Traversal DFS / BFS 2. AOV / AOE Network 3. Kruskal Algorithm(Minimum Spanning Tree) 4. Prim Algorithm(Minimum Spanning Tree) 5. Boruvka Algorithm(Minimum Spanning Tree) 6. Dijkstra Algorithm(Single-Source Shortest Path) 7. Bellman-Ford Algorithm(Single-Source Shortest Path) 8. SPFA Algorithm(Single-Source Shortest Path) 9. Floyd Algorithm(All-Pairs Shortest Path) 10. Johnson Algorithm(All-Pairs Shortest Path) 11. Fleury Algorithm(Eulerian Circuit) 12. Ford-Fulkerson Algorithm(Augmenting Path for Maximum Network Flow) 13. Edmonds-Karp Algorithm(Maximum Network Flow) 14. Dinic Algorithm(Maximum Network Flow) 15. General Preflow-Push Algorithm 16. Highest-Label Preflow-Push HLPP Algorithm 17. Primal-Dual Algorithm(Minimum Cost Flow)18. Kosaraju Algorithm(Strongly Connected Components of Directed Graphs) 19. Tarjan Algorithm(Strongly Connected Components of Directed Graphs) 20. Gabow Algorithm(Strongly Connected Components of Directed Graphs) 21. Hungarian Algorithm(Bipartite Graph Matching) 22. Hopcroft-Karp Algorithm(Bipartite Graph Matching) 23. kuhn munkras Algorithm(Best Bipartite Matching) 24. Edmonds’ Blossom-Contraction Algorithm(General Graph Matching) | 1. Graph Traversal 2. Strong and Weak Connectivity of Directed and Undirected Graphs 3. Cut Vertices/Cut Edges 3. AOV Network and Topological Sorting 4. AOE Network and Critical Path 5. Minimum-Cost Spanning Tree/Second-Best Minimum Spanning Tree 6. Shortest Path Problem/K-th Shortest Path Problem 7. Maximum Network Flow Problem 8. Minimum Cost Flow Problem 9. Graph Coloring Problem 10. Difference Constraints System 11. Eulerian Circuit 12. Chinese Postman Problem 13. Hamiltonian Circuit 14. Optimal Edge Cut Set/Optimal Vertex Cut Set/Minimum Edge Cut Set/Minimum Vertex Cut Set/Minimum Path Cover/Minimum Vertex Set Cover 15. Edge Cover Set 16. Perfect Matching and Maximum Matching Problems in Bipartite Graphs 17. Cactus Graph 18. Chordal Graph 19. Stable Marriage Problem 20. Maximum Clique Problem | |
| Number Theory | 1. Greatest Common Divisor 2. Least Common Multiple 3. Prime Factorization 4. Primality Testing 5. Base Conversion 6. High-Precision Computation 7. Divisibility Problems 8. Congruence Problems 9. Euler’s Totient Function 10. Extended Euclidean Algorithm 11. Permutation Group 12. Generating Function 13. Discrete Transform 14. Cantor Expansion 15. Matrix 16. Vector 17. System of Linear Equations 18. Linear Programming | ||
| Geometry | 1. Convex Hull - Gift wrapping 2. Convex Hull - Graham scan 3. Line Segment Problems 4. Problems Related to Polygons and Polyhedra | ||
| NP-Complete | 1. Computational Model 2. P-Class and NP-Class Problems 3. NP-Complete Problems 4. Approximation Algorithms for NP-Complete Problems | 1. Random Access Machine RAM 2. Random Access Stored Program Machine RASP 3. Turing Machine 4. Nondeterministic Turing Machine 5. P-Class and NP-Class Languages 6. Polynomial-Time Verification 7. Polynomial-Time Transformation 8. Cook’s Theorem 9. Satisfiability Problem of Conjunctive Normal Form CNF-SAT 10. Satisfiability Problem of 3-Conjunctive Normal Form 3-SAT 11. Clique Problem CLIQUE 12. Vertex Cover Problem VERTEX-COVER 13. Subset Sum Problem SUBSET-SUM 14. Hamiltonian Circuit Problem HAM-CYCLE 15. Traveling Salesman Problem TSP 16. Approximation Algorithm for the Vertex Cover Problem 17. Approximation Algorithm for the Traveling Salesman Problem 18. Traveling Salesman Problem with the Triangle Inequality Property 19. General Traveling Salesman Problem 20. Approximation Algorithm for the Set Cover Problem 21. Approximation Algorithm for the Subset Sum Problem 22. Exponential-Time Algorithm for the Subset Sum Problem 23. Polynomial-Time Approximation Scheme for the Subset Sum Problem | |
| Bit Operations | Bit operations include: 1. NOT 2. Bitwise OR(OR) 3. Bitwise XOR(XOR) 4. Bitwise AND(AND) 5. Shift: It is a binary operator used to move every bit in a binary number in one direction by a specified number of positions; the overflowing part will be discarded, and the vacant part will be filled with a certain value. | 1.Bitwise AND of Numbers Range 2.UTF-8 Validation 3.Convert a Number to Hexadecimal 4.Find Longest Awesome Substring 5.XOR Operation in an Array 6.Power Set 7.Number of 1 Bits 8.Prime Number of Set Bits in Binary Representation 9.XOR Queries of a Subarray | LeetCode: Bit Manipulation |