Skip to content

Commit 2a02d46

Browse files
CraksyCraksyalexfertel
authored
feat: migrate most implementations from base repo (alexfertel#34)
Co-authored-by: Craksy <[email protected]> Co-authored-by: Alexander González <[email protected]>
1 parent 44109ca commit 2a02d46

File tree

118 files changed

+12525
-67
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+12525
-67
lines changed

README.md

+143-60
Original file line numberDiff line numberDiff line change
@@ -24,87 +24,170 @@ cargo test
2424

2525
### Sorting Algorithms
2626

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)
3647

3748
### Graphs
3849

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)
4463

4564
### Dynamic Programming
4665

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)
5578

5679
### Data Structures
5780

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
6999

70100
- [ ] Naive
71-
- [ ] Rabin Carp
72101
- [ ] 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)
75109

76110
### General
77111

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)
82119

83120
### Ciphers
84121

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)
90133

91134
### Bit Manipulation
92135

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)
108191

109192
### Contributing
110193

0 commit comments

Comments
 (0)