AlgoPlus is a C++ library that includes ready-to-use complex data structures and algorithms.
<strong>See the full documentation <a href="https://csrt-ntua.github.io/AlgoPlus/">here</a></strong>
<strong><a href="https://discord.gg/M9nYv4MHz6">Join</a> our Discord</strong>
Example:
#include <machine_learning/clustering/DBSCAN/dbscan.h>
int main(){
std::vector<std::vector<double> > data;
...
std::map<std::pair<double, double>, int64_t> clusters = a.get_clusters();
std::vector<std::pair<double, double> > noise = a.get_noise();
...
}
#include <machine_learning/image/edge_detection/sobel_operator.h>
int main(){
...
std::vector<std::vector<int32_t> > img(data);
std::vector<std::vector<int32_t> > resulted =
Sobel(img);
...
}
#include <graph.h>
#include <graph_visualization.h>
int main(){
g.add_edge(1, 4, 2);
g.add_edge(4, 5, 6);
g.add_edge(5, 2, 9);
g.add_edge(2, 8, 10);
std::cout << g.shortest_path(1, 2) << '\n';
g.visualize()
}
DBSCAN clustering algorithm class.
Definition: dbscan.h:17
class for weighted graph
Definition: graph.h:554
std::vector< std::vector< int32_t > > Sobel(const std::vector< std::vector< int32_t > > &image)
Sobel apply function.
Definition: sobel_operator.h:50
You can see more examples or follow the Tutorials.
Classes
Graphs
Trees
Lists
Other
Machine Learning(NEW!)
<strong>How to run test cases</strong>
We have unit tests for every function of our implemented algorithms & data structures. It is very important to make sure that your code works before making any pull requests!
Linux/MacOS
mkdir build && cd build
cmake ..
make
cd tests
./runUnitTests
Windows
mkdir build
cmake -S . -B build -G Ninja
cmake --build build
cd build/tests
./runUnitTests
<strong>Our contributors</strong>
<strong>How to contribute</strong>
- Povide new implementations on our already implemented data structures & algorithms.
- Implement new classes / algorithms.
- Contribute to unit testing by writting unit tests for our classes and algorithms.
- Create and contribute to APIs for other languages(Check AlgoPy branch).
- Promote the repository on your local workshop/seminar and get a shout-out.
See more /home/spiros/Documents/AlgoPlus/.github/CONTRIBUTE/CONTRIBUTE.md "here".
For any information or questions, please contact Spiros at **spirosmag@ieee.org**
<strong>Star History</strong>