- Notifications
You must be signed in to change notification settings - Fork366
C++ implementations of well-known (and some rare) algorithms, while following good software development practices
License
ProAlgos/ProAlgos-Cpp
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This project is focused on implementingalgorithms and data structures in C++, while followinggood software engineering practices, such as:
- Writing well-documented code
- Adhering to code guidelines
- Writing and passing unit tests
- Reviewing each other's code
- Implement algorithms and data structures
- Learn to be better software developers
- Guide one another on version control, unit testing, and algorithms
There are a few ways to get involved.
- Read thecontribution guidelines
- Fork the repo
- Create an issue describing what you'd like to add, orclaim an issue that'sup for grabs
- Create abranch andadd your code
- Submit apull request and reference the issue it closes
You can find more details regarding the steps above in thecontributionguidelines, so be sure to check them out.
Create a new issue and we'llhandle it from there. 😄
✅ = has unit tests
Backtracking
- N-Queens ✅
Dynamic programming
- 0-1 knapsack ✅
- Coin change ✅
- Longest decreasing subsequence ✅
- Matrix chain multiplication ✅
- Maximum sum contiguous subarray:Kadane's algorithm ✅
- Rod cutting ✅
- Weighted activity selection ✅
Number theory
- Binomial coefficient ✅
- Euclidean algorithms
- Greatest common divisor (GCD) ✅
- Extended Euclidean algorithm (Bézout coefficients) ✅
- Fast exponentiation ✅
- Nth Fibonacci number
- Perfect number check ✅
- Prime numbers
Searching
Sorting
String
- Longest common subsequence ✅
- Searching (pattern matching)
- Edit Distance Problem ✅
- Shunting yard ✅
- Permutation
To compile the source files, runmake from theC++ directory. Doing so will create executable binaries in thebin directory.
To compile and run all tests, runmake test. This will compile all the tests (in the same way as described above) and will run them, displaying the results.
In order to run a specific test and see its results, run it manually from thebin directory after callingmake. For example, this command (executed frombin) would run only the unit tests for the N Queens algorithm:
$ ./n_queensTo remove all of the files created during compilation, runmake clean. You need not do this every time you make some changes to a file and want to recompile it. Just runmake and it will re-compile just those files whose contents have changed.
To see what happens in the background during compilation and testing, see the following files:
For more information onmake, see theGNU make Manual. For more information onCMake, see theCMake Tutorial.
This project is actively maintained by@alxmjo, and inactively by@faheel.
This project is licensed under the terms of theMIT license.
About
C++ implementations of well-known (and some rare) algorithms, while following good software development practices
Topics
Resources
License
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.