https://github.com/jeanchilger/useful-algorithms
A bunch of commonly used algorithms and hacks to make a programmer's life easier
https://github.com/jeanchilger/useful-algorithms
ordering searching useful-functions
Last synced: 10 months ago
JSON representation
A bunch of commonly used algorithms and hacks to make a programmer's life easier
- Host: GitHub
- URL: https://github.com/jeanchilger/useful-algorithms
- Owner: jeanchilger
- License: gpl-3.0
- Created: 2018-06-08T04:13:09.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-03-15T21:45:04.000Z (about 6 years ago)
- Last Synced: 2025-01-23T16:38:39.406Z (over 1 year ago)
- Topics: ordering, searching, useful-functions
- Language: C++
- Size: 96.7 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# useful-algorithms
A bunch of commonly used algorithms and hacks to make a programmer's life easier.
The algorithms were mostly developed by [JeanCHilger](https://github.com/JeanCHilger), [Junior-16](https://github.com/Junior-16) and [PauloGSC](https://github.com/PauloGSC).
## TODO
- [ ] [Sieve of Eratosthenes](https://github.com/JeanCHilger/useful-algorithms/tree/master/math/sieve.cpp)
- [ ] Fenwick Tree
- [ ] Segment Tree with Lazy
- [ ] Union-Find Disjoint Set
- [ ] Minimum Spanning Tree
- [ ] Kuskal's Algorithm
## Quick List
Superficial description of the contents of this repository.
* [data-structures](https://github.com/JeanCHilger/useful-algorithms/tree/master/data-structures): Useful and ordinary data structures, most found anywhere else.
* [trees](https://github.com/JeanCHilger/useful-algorithms/tree/master/data-structures/trees): Trees data structures.
* [avl](https://github.com/JeanCHilger/useful-algorithms/tree/master/data-structures/trees/avl): AVL balanced tree implementation using C language;
* [bst](https://github.com/JeanCHilger/useful-algorithms/tree/master/data-structures/trees/bst): Binary Search Tree implementation using C language;
* [red-black](https://github.com/JeanCHilger/useful-algorithms/tree/master/data-structures/trees/red-black)(not complete): Red-Black balanced tree implementation using C language;
* [segment-tree](https://github.com/JeanCHilger/useful-algorithms/tree/master/data-structures/trees/segment-tree): Segment Tree array-like implementation using C++ language;
* [dynamic-programming](https://github.com/JeanCHilger/useful-algorithms/tree/master/dynamic-programming): Classical dynamic programming algorithms.
* [coin.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/coin.cpp): C++ implementation for the *coin chttps://github.com/JeanCHilger/useful-algorithms/tree/master/data-structureshange* problem;
* [edit-distance.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/edit-distance.cpp): C++ implementation for the *edit distance* problem;
* [kadane.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/kadane.cpp): C++ implementation for the Kadane's algorithm (max sum for a contiguous subarray);
* [knapsack-bottom-up.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/knapsack-bottom-up.cpp): C++ implementation for the knapsack problem, using the bottom-up approach;
* [knapsack.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/knapsack-bottom-up.cpp): C++ implementation for the knapsack problem, using the top-down approach;
* [lis.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/lis.cpp): C++ implementation for the Longest Increasing Subsequence problem;
* [longest-palindromic-subsequence.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/longest-palindromic-subsequence.cpp): C++ implementation for the Longest Palindromic Subsequence problem;
* [longest-palindromic-substring.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/longest-palindromic-substring.cpp): C++ implementation for the Longest Palindromic Substring problem;
* [max-subarray-sum.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/max-subarray-sum.cpp): C++ implementation for the maximun sum of a subarray problem;
* [scs.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/dynamic-programming/scs.cpp): C++ implementation for the Shortest Common Supersequence problem;
* [graphs](https://github.com/JeanCHilger/useful-algorithms/tree/master/graphs): Classical algorithms on graphs.
* [bfs.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/graphs/bfs.cpp): C++ implementation of the Breadth-First Search traversal;
* [dfs.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/graphs/dfs.cpp): C++ implementation of the Depth-First Search traversal;
* [dijkstra.cpp](https://github.com/JeanCHilger/useful-algorithms/blob/master/graphs/dijkstra.cpp): C++ implementation of the Dijkstra's algorithm;
* [problem-solving](https://github.com/JeanCHilger/useful-algorithms/tree/master/problem-solving): Problems solved by [JeanCHilger](https://github.com/JeanCHilger), [Junior-16](https://github.com/Junior-16) and [PauloGSC](https://github.com/PauloGSC), from misc sources.