@@ -24,87 +24,170 @@ cargo test
24
24
25
25
### Sorting Algorithms
26
26
27
- - [x] Bubble
28
- - [x] Counting
29
- - [x] Heap
30
- - [x] Insertion
31
- - [x] Merge
32
- - [x] Quick
33
- - [x] Radix
34
- - [x] Selection
35
- - [x] Shell
27
+ - [x] [ Bubble] ( ./src/sorting/bubble_sort.rs )
28
+ - [X] [ Bucket] ( ./src/sorting/bucket_sort.rs )
29
+ - [x] [ Cocktail-Shaker] ( ./src/sorting/cocktail_shaker_sort.rs )
30
+ - [x] [ Counting] ( ./src/sorting/counting_sort.rs )
31
+ - [x] [ Cycle] ( ./src/sorting/cycle_sort.rs )
32
+ - [x] [ Exchange] ( ./src/sorting/exchange_sort.rs )
33
+ - [x] [ Heap] ( ./src/sorting/heap_sort.rs )
34
+ - [x] [ Insertion] ( ./src/sorting/insertion_sort.rs )
35
+ - [x] [ Gnome] ( ./src/sorting/gnome_sort.rs )
36
+ - [x] [ Merge] ( ./src/sorting/merge_sort.rs )
37
+ - [x] [ Odd-even] ( ./src/sorting/odd_even_sort.rs )
38
+ - [x] [ Pancake] ( ./src/sorting/pancake_sort.rs )
39
+ - [x] [ Quick] ( ./src/sorting/quick_sort.rs )
40
+ - [x] [ Radix] ( ./src/sorting/radix_sort.rs )
41
+ - [x] [ Selection] ( ./src/sorting/selection_sort.rs )
42
+ - [x] [ Shell] ( ./src/sorting/shell_sort.rs )
43
+ - [x] [ Stooge] ( ./src/sorting/stooge_sort.rs )
44
+ - [x] [ Comb] ( ./src/sorting/comb_sort.rs )
45
+ - [x] [ Bucket] ( ./src/sorting/bucket_sort.rs )
46
+ - [x] [ Timsort] ( ./src/sorting/tim_sort.rs )
36
47
37
48
### Graphs
38
49
39
- - [x] Dijkstra
40
- - [ ] Kruskal's Minimum Spanning Tree
41
- - [ ] Prim's Minimum Spanning Tree
42
- - [x] BFS
43
- - [x] DFS
50
+ - [x] [ Dijkstra] ( ./src/graph/dijkstra.rs )
51
+ - [x] [ Kruskal's Minimum Spanning Tree] ( ./src/graph/minimum_spanning_tree.rs )
52
+ - [x] [ Prim's Minimum Spanning Tree] ( ./src/graph/prim.rs )
53
+ - [x] [ Breadth-First Search (BFS)] ( ./src/graph/breadth_first_search.rs )
54
+ - [x] [ Depth First Search (DFS)] ( ./src/graph/depth_first_search.rs )
55
+ - [x] [ Bellman-Ford] ( ./src/graph/bellman_ford.rs )
56
+ - [x] [ Prufer Code] ( ./src/graph/prufer_code.rs )
57
+ - [x] [ Lowest Common Ancestor] ( ./src/graph/lowest_common_ancestor.rs )
58
+ - [x] [ Heavy Light Decomposition] ( ./src/graph/heavy_light_decomposition.rs )
59
+ - [x] [ Tarjan's Strongly Connected Components] ( ./src/graph/strongly_connected_components.rs )
60
+ - [x] [ Topological sorting] ( ./src/graph/topological_sort.rs )
61
+ - [x] [ Centroid Decomposition] ( ./src/graph/centroid_decomposition.rs )
62
+ - [x] [ Dinic's Max Flow] ( ./src/graph/dinic_maxflow.rs )
44
63
45
64
### Dynamic Programming
46
65
47
- - [x] 0-1 Knapsack
48
- - [x] Edit Distance
49
- - [x] Longest common subsequence
50
- - [ ] Longest increasing subsequence
51
- - [ ] K-Means Clustering
52
- - [x] Coin Change
53
- - [x] Rod cutting
54
- - [x] Egg Dropping Puzzle
66
+ - [x] [ 0-1 Knapsack] ( ./src/dynamic_programming/knapsack.rs )
67
+ - [x] [ Edit Distance] ( ./src/dynamic_programming/edit_distance.rs )
68
+ - [x] [ Longest common subsequence] ( ./src/dynamic_programming/longest_common_subsequence.rs )
69
+ - [x] [ Longest continuous increasing subsequence] ( ./src/dynamic_programming/longest_continuous_increasing_subsequence.rs )
70
+ - [x] [ Longest increasing subsequence] ( ./src/dynamic_programming/longest_increasing_subsequence.rs )
71
+ - [x] [ K-Means Clustering] ( ./src/general/kmeans.rs )
72
+ - [x] [ Coin Change] ( ./src/dynamic_programming/coin_change.rs )
73
+ - [x] [ Rod Cutting] ( ./src/dynamic_programming/rod_cutting.rs )
74
+ - [x] [ Egg Dropping Puzzle] ( ./src/dynamic_programming/egg_dropping.rs )
75
+ - [x] [ Maximum Subarray] ( ./src/dynamic_programming/maximum_subarray.rs )
76
+ - [x] [ Is Subsequence] ( ./src/dynamic_programming/is_subsequence.rs )
77
+ - [x] [ Maximal Square] ( ./src/dynamic_programming/maximal_square.rs )
55
78
56
79
### Data Structures
57
80
58
- - [x] Queue
59
- - [x] Stack
60
- - [x] Heap
61
- - [x] Linked List
62
- - [ ] Graph
63
- - [ ] Trie
64
- - [ ] Binary Search Tree
65
- - [ ] B-Tree
66
- - [ ] AVL Tree
67
-
68
- ### String Matching
81
+ - [x] [ Stack] ( ./src/data_structures/stack.rs )
82
+ - [x] [ Queue] ( ./src/data_structures/queue.rs )
83
+ - [x] [ Heap] ( ./src/data_structures/heap.rs )
84
+ - [x] [ Linked List] ( ./src/data_structures/linked_list.rs )
85
+ - [x] [ Graph] ( ./src/data_structures/graph.rs )
86
+ - [x] [ Directed] ( ./src/data_structures/graph.rs )
87
+ - [x] [ Undirected] ( ./src/data_structures/graph.rs )
88
+ - [x] [ Trie] ( ./src/data_structures/trie.rs )
89
+ - [x] [ Binary Search Tree] ( ./src/data_structures/binary_search_tree.rs )
90
+ - [x] [ B-Tree] ( ./src/data_structures/b_tree.rs )
91
+ - [x] [ AVL Tree] ( ./src/data_structures/avl_tree.rs )
92
+ - [x] [ RB Tree] ( ./src/data_structures/rb_tree.rs )
93
+ - [X] [ Stack using Linked List] ( ./src/data_structures/stack_using_singly_linked_list.rs )
94
+ - [x] [ Segment Tree] ( ./src/data_structures/segment_tree.rs )
95
+ - [x] [ Fenwick Tree] ( ./src/data_structures/fenwick_tree.rs )
96
+ - [x] [ Union-find] ( ./src/data_structures/union_find.rs )
97
+
98
+ ### Strings
69
99
70
100
- [ ] Naive
71
- - [ ] Rabin Carp
72
101
- [ ] Finite Automaton
73
- - [x] Knuth Morris Pratt
74
- - [x] Reversing text
102
+ - [x] [ Aho-Corasick Algorithm] ( ./src/string/aho_corasick.rs )
103
+ - [x] [ Burrows-Wheeler transform] ( ./src/string/burrows_wheeler_transform.rs )
104
+ - [x] [ Knuth Morris Pratt] ( ./src/string/knuth_morris_pratt.rs )
105
+ - [x] [ Manacher] ( ./src/string/manacher.rs )
106
+ - [x] [ Rabin Carp] ( ./src/string/rabin_karp.rs )
107
+ - [x] [ Reverse] ( ./src/string/reverse.rs )
108
+ - [x] [ Hamming Distance] ( ./src/string/hamming_distance.rs )
75
109
76
110
### General
77
111
78
- - [ ] Convex Hull: Graham Scan
79
- - [x] N-Queens
80
- - [ ] Graph Coloring
81
- - [ ] Tower of Hanoi
112
+ - [x] [ Convex Hull: Graham Scan] ( ./src/general/convex_hull.rs )
113
+ - [x] [ N-Queens Problem] ( ./src/general/nqueens.rs )
114
+ - [ ] Graph Coloringp
115
+ - [x] [ Tower of Hanoi] ( ./src/general/hanoi.rs )
116
+ - [x] [ Kmeans] ( ./src/general/kmeans.rs )
117
+ - [x] [ Two Sum] ( ./src/general/two_sum.rs )
118
+ - [x] [ Huffman Encoding] ( ./src/general/huffman_encoding.rs )
82
119
83
120
### Ciphers
84
121
85
- - [x] Transposition
86
- - [x] Caesar cipher
87
- - [x] ROT13
88
- - [x] Vigenere
89
- - [x] Morse
122
+ - [x] [ Caesar] ( ./src/ciphers/caesar.rs )
123
+ - [x] [ Morse Code] ( ./src/ciphers/morse_code.rs )
124
+ - [x] [ Polybius] ( ./src/ciphers/polybius.rs )
125
+ - [x] [ SHA-2] ( ./src/ciphers/sha256.rs )
126
+ - [x] [ TEA] ( ./src/ciphers/tea.rs )
127
+ - [x] [ Transposition] ( ./src/ciphers/transposition.rs )
128
+ - [x] [ Vigenère] ( ./src/ciphers/vigenere.rs )
129
+ - [x] [ XOR] ( ./src/ciphers/xor.rs )
130
+ - Rot13
131
+ - [x] [ Another Rot13] ( ./src/ciphers/another_rot13.rs )
132
+ - [x] [ Rot13] ( ./src/ciphers/rot13.rs )
90
133
91
134
### Bit Manipulation
92
135
93
- - [x] Bit Distance
94
- - [x] Bits Length
95
- - [x] Clear Bit
96
- - [x] Count Ones
97
- - [x] Divide By Two
98
- - [x] Get Bit
99
- - [x] Is Even
100
- - [x] Is Positive
101
- - [x] Is Power Of Two
102
- - [x] Multiply By Two
103
- - [x] Multiply Signed
104
- - [x] Multiply Unsigned
105
- - [x] Set Bit
106
- - [x] Twos Complement
107
- - [x] Update Bit
136
+ - [x] [ Bit Distance] ( ./src/bit_manipulation/basic.rs )
137
+ - [x] [ Bits Length] ( ./src/bit_manipulation/basic.rs )
138
+ - [x] [ Clear Bit] ( ./src/bit_manipulation/basic.rs )
139
+ - [x] [ Count Ones] ( ./src/bit_manipulation/basic.rs )
140
+ - [x] [ Divide By Two] ( ./src/bit_manipulation/basic.rs )
141
+ - [x] [ Get Bit] ( ./src/bit_manipulation/basic.rs )
142
+ - [x] [ Is Even] ( ./src/bit_manipulation/basic.rs )
143
+ - [x] [ Is Positive] ( ./src/bit_manipulation/basic.rs )
144
+ - [x] [ Is Power Of Two] ( ./src/bit_manipulation/basic.rs )
145
+ - [x] [ Multiply By Two] ( ./src/bit_manipulation/basic.rs )
146
+ - [x] [ Multiply Signed] ( ./src/bit_manipulation/basic.rs )
147
+ - [x] [ Multiply Unsigned] ( ./src/bit_manipulation/basic.rs )
148
+ - [x] [ Set Bit] ( ./src/bit_manipulation/basic.rs )
149
+ - [x] [ Twos Complement] ( ./src/bit_manipulation/basic.rs )
150
+ - [x] [ Update Bit] ( ./src/bit_manipulation/basic.rs )
151
+
152
+ ### Geometry
153
+
154
+ - [x] [ Closest pair of 2D points] ( ./src/geometry/closest_points.rs )
155
+
156
+
157
+ ### Search
158
+
159
+ - [x] [ Linear] ( ./src/searching/linear_search.rs )
160
+ - [x] [ Binary] ( ./src/searching/binary_search.rs )
161
+ - [x] [ Recursive Binary] ( ./src/searching/binary_search_recursive.rs )
162
+ - [x] [ Kth Smallest] ( ./src/searching/kth_smallest.rs )
163
+ - [x] [ Exponential] ( ./src/searching/exponential_search.rs )
164
+ - [x] [ Jump] ( ./src/searching/jump_search.rs )
165
+ - [x] [ Fibonacci] ( ./src/searching/fibonacci_search.rs )
166
+ - [x] [ Quick Select] ( ./src/searching/quick_select.rs )
167
+
168
+ ### Math
169
+ - [x] [ Baby-Step Giant-Step Algorithm] ( ./src/math/baby_step_giant_step.rs )
170
+ - [x] [ Extended euclidean algorithm] ( ./src/math/extended_euclidean_algorithm.rs )
171
+ - [x] [ Gaussian Elimination] ( ./src/math/gaussian_elimination.rs )
172
+ - [x] [ Greatest common divisor] ( ./src/math/greatest_common_divisor.rs )
173
+ - [x] [ Greatest common divisor of n numbers] ( ./src/math/gcd_of_n_numbers.rs )
174
+ - [x] [ Least common multiple of n numbers] ( ./src/math/lcm_of_n_numbers.rs )
175
+ - [x] [ Miller Rabin primality test] ( ./src/math/miller_rabin.rs )
176
+ - [x] [ Pascal's triangle] ( ./src/math/pascal_triangle.rs )
177
+ - [x] [ Square root with Newton's method] ( ./src/math/square_root.rs )
178
+ - [x] [ Fast power algorithm] ( ./src/math/fast_power.rs )
179
+ - [X] [ Perfect number] ( ./src/math/perfect_numbers.rs )
180
+ - [X] [ Prime factors] ( ./src/math/prime_factors.rs )
181
+ - [X] [ Prime number] ( ./src/math/prime_numbers.rs )
182
+ - [x] [ Linear Sieve] ( ./src/math/linear_sieve.rs )
183
+ - [x] [ Pollard's Rho algorithm] ( ./src/math/pollard_rho.rs )
184
+ - [x] [ Quadratic Residue] ( ./src/math/quadratic_residue.rs )
185
+ - [x] [ Simpson's Rule for Integration] ( ./src/math/simpson_integration.rs )
186
+ - [x] [ Fast Fourier Transform] ( ./src/math/fast_fourier_transform.rs )
187
+ - [x] [ Armstrong Number] ( ./src/math/armstrong_number.rs )
188
+ - [x] [ Permuted Congruential Random Number Generator] ( ./src/math/random.rs )
189
+ - [x] [ Zeller's Congruence Algorithm] ( ./src/math/zellers_congruence_algorithm.rs )
190
+ - [x] [ Karatsuba Multiplication Algorithm] ( ./src/math/karatsuba_multiplication.rs )
108
191
109
192
### Contributing
110
193
0 commit comments