@@ -57,25 +57,26 @@ a set of rules that precisely define a sequence of operations.
57
57
* ` B ` [ Primality Test] ( src/algorithms/math/primality-test ) (trial division method)
58
58
* ` B ` [ Euclidean Algorithm] ( src/algorithms/math/euclidean-algorithm ) - calculate the Greatest Common Divisor (GCD)
59
59
* ` B ` [ Least Common Multiple] ( src/algorithms/math/least-common-multiple ) (LCM)
60
- * ` A ` [ Integer Partition] ( src/algorithms/math/integer-partition )
61
60
* ` B ` [ Sieve of Eratosthenes] ( src/algorithms/math/sieve-of-eratosthenes ) - finding all prime numbers up to any given limit
62
61
* ` B ` [ Is Power of Two] ( src/algorithms/math/is-power-of-two ) - check if the number is power of two (naive and bitwise algorithms)
62
+ * ` B ` [ Pascal's Triangle] ( src/algorithms/math/pascal-triangle )
63
+ * ` A ` [ Integer Partition] ( src/algorithms/math/integer-partition )
63
64
* ` A ` [ Liu Hui π Algorithm] ( src/algorithms/math/liu-hui ) - approximate π calculations based on N-gons
64
65
* ** Sets**
65
66
* ` B ` [ Cartesian Product] ( src/algorithms/sets/cartesian-product ) - product of multiple sets
67
+ * ` B ` [ Fisher–Yates Shuffle] ( src/algorithms/sets/fisher-yates ) - random permutation of a finite sequence
66
68
* ` A ` [ Power Set] ( src/algorithms/sets/power-set ) - all subsets of a set
67
69
* ` A ` [ Permutations] ( src/algorithms/sets/permutations ) (with and without repetitions)
68
70
* ` A ` [ Combinations] ( src/algorithms/sets/combinations ) (with and without repetitions)
69
- * ` B ` [ Fisher–Yates Shuffle] ( src/algorithms/sets/fisher-yates ) - random permutation of a finite sequence
70
71
* ` A ` [ Longest Common Subsequence] ( src/algorithms/sets/longest-common-subsequence ) (LCS)
71
72
* ` A ` [ Longest Increasing Subsequence] ( src/algorithms/sets/longest-increasing-subsequence )
72
73
* ` A ` [ Shortest Common Supersequence] ( src/algorithms/sets/shortest-common-supersequence ) (SCS)
73
74
* ` A ` [ Knapsack Problem] ( src/algorithms/sets/knapsack-problem ) - "0/1" and "Unbound" ones
74
75
* ` A ` [ Maximum Subarray] ( src/algorithms/sets/maximum-subarray ) - "Brute Force" and "Dynamic Programming" (Kadane's) versions
75
76
* ` A ` [ Combination Sum] ( src/algorithms/sets/combination-sum ) - find all combinations that form specific sum
76
77
* ** Strings**
77
- * ` A ` [ Levenshtein Distance] ( src/algorithms/string/levenshtein-distance ) - minimum edit distance between two sequences
78
78
* ` B ` [ Hamming Distance] ( src/algorithms/string/hamming-distance ) - number of positions at which the symbols are different
79
+ * ` A ` [ Levenshtein Distance] ( src/algorithms/string/levenshtein-distance ) - minimum edit distance between two sequences
79
80
* ` A ` [ Knuth–Morris–Pratt Algorithm] ( src/algorithms/string/knuth-morris-pratt ) (KMP Algorithm) - substring search (pattern matching)
80
81
* ` A ` [ Z Algorithm] ( src/algorithms/string/z-algorithm ) - substring search (pattern matching)
81
82
* ` A ` [ Rabin Karp Algorithm] ( src/algorithms/string/rabin-karp ) - substring search
@@ -100,11 +101,11 @@ a set of rules that precisely define a sequence of operations.
100
101
* ** Graphs**
101
102
* ` B ` [ Depth-First Search] ( src/algorithms/graph/depth-first-search ) (DFS)
102
103
* ` B ` [ Breadth-First Search] ( src/algorithms/graph/breadth-first-search ) (BFS)
104
+ * ` B ` [ Kruskal’s Algorithm] ( src/algorithms/graph/kruskal ) - finding Minimum Spanning Tree (MST) for weighted undirected graph
103
105
* ` A ` [ Dijkstra Algorithm] ( src/algorithms/graph/dijkstra ) - finding shortest path to all graph vertices
104
106
* ` A ` [ Bellman-Ford Algorithm] ( src/algorithms/graph/bellman-ford ) - finding shortest path to all graph vertices
105
107
* ` A ` [ Detect Cycle] ( src/algorithms/graph/detect-cycle ) - for both directed and undirected graphs (DFS and Disjoint Set based versions)
106
108
* ` A ` [ Prim’s Algorithm] ( src/algorithms/graph/prim ) - finding Minimum Spanning Tree (MST) for weighted undirected graph
107
- * ` B ` [ Kruskal’s Algorithm] ( src/algorithms/graph/kruskal ) - finding Minimum Spanning Tree (MST) for weighted undirected graph
108
109
* ` A ` [ Topological Sorting] ( src/algorithms/graph/topological-sorting ) - DFS method
109
110
* ` A ` [ Articulation Points] ( src/algorithms/graph/articulation-points ) - Tarjan's algorithm (DFS based)
110
111
* ` A ` [ Bridges] ( src/algorithms/graph/bridges ) - DFS based algorithm
@@ -114,9 +115,9 @@ a set of rules that precisely define a sequence of operations.
114
115
* ` A ` [ Travelling Salesman Problem] ( src/algorithms/graph/travelling-salesman ) - shortest possible route that visits each city and returns to the origin city
115
116
* ** Uncategorized**
116
117
* ` B ` [ Tower of Hanoi] ( src/algorithms/uncategorized/hanoi-tower )
118
+ * ` B ` [ Square Matrix Rotation] ( src/algorithms/uncategorized/square-matrix-rotation ) - in-place algorithm
117
119
* ` A ` [ N-Queens Problem] ( src/algorithms/uncategorized/n-queens )
118
120
* ` A ` [ Knight's Tour] ( src/algorithms/uncategorized/knight-tour )
119
- * ` B ` [ Square Matrix Rotation] ( src/algorithms/uncategorized/square-matrix-rotation ) - in-place algorithm
120
121
121
122
### Algorithms by Paradigm
122
123
@@ -135,13 +136,14 @@ algorithm is an abstraction higher than a computer program.
135
136
* ** Divide and Conquer** - divide the problem into smaller parts and then solve those parts
136
137
* ` B ` [ Binary Search] ( src/algorithms/search/binary-search )
137
138
* ` B ` [ Tower of Hanoi] ( src/algorithms/uncategorized/hanoi-tower )
139
+ * ` B ` [ Pascal's Triangle] ( src/algorithms/math/pascal-triangle )
138
140
* ` B ` [ Euclidean Algorithm] ( src/algorithms/math/euclidean-algorithm ) - calculate the Greatest Common Divisor (GCD)
139
- * ` A ` [ Permutations] ( src/algorithms/sets/permutations ) (with and without repetitions)
140
- * ` A ` [ Combinations] ( src/algorithms/sets/combinations ) (with and without repetitions)
141
141
* ` B ` [ Merge Sort] ( src/algorithms/sorting/merge-sort )
142
142
* ` B ` [ Quicksort] ( src/algorithms/sorting/quick-sort )
143
143
* ` B ` [ Tree Depth-First Search] ( src/algorithms/tree/depth-first-search ) (DFS)
144
144
* ` B ` [ Graph Depth-First Search] ( src/algorithms/graph/depth-first-search ) (DFS)
145
+ * ` A ` [ Permutations] ( src/algorithms/sets/permutations ) (with and without repetitions)
146
+ * ` A ` [ Combinations] ( src/algorithms/sets/combinations ) (with and without repetitions)
145
147
* ** Dynamic Programming** - build up a solution using previously found sub-solutions
146
148
* ` B ` [ Fibonacci Number] ( src/algorithms/math/fibonacci )
147
149
* ` A ` [ Levenshtein Distance] ( src/algorithms/string/levenshtein-distance ) - minimum edit distance between two sequences
0 commit comments