algos
algos copied to clipboard
Popular Algorithms and Data Structures implemented in popular languages
Algos
Community (college) maintained list of Algorithms and Data Structures implementations.
Implemented Algorithms
| Algorithm | C | CPP | Java | Python | Golang | JavaScript | C# |
|---|---|---|---|---|---|---|---|
| Bin Sort | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |||
| Binary Search | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| Breadth First Search | :white_check_mark: | :white_check_mark: | |||||
| Breadth First Traversal | :white_check_mark: | ||||||
| Coin Change Problem | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||
| Counting Sort | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| Depth First Traversal | :white_check_mark: | :white_check_mark: | |||||
| Dijkstra Algorithm | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||||
| Euclidean GCD | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| Exponentiation by Squaring | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||
| Heap Sort | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |||
| Insertion Sort | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| k-NN | :white_check_mark: | ||||||
| Largest Sum Contiguous Subarray | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||
| Linear Regression | :white_check_mark: | ||||||
| Linear Search | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| Longest Common Subsequence | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||
| Longest Palindromic Substring | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||
| Merge Sort | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| Modular Exponential | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||
| Nth Fibonacci Number | :white_check_mark: | ||||||
| N-Queen Problem | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |||
| Prime Factor | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||
| Prims | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |||
| Quick Select | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||||
| Quicksort | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| Radix Sort | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||||
| Rod Cutting Problem | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||
| Shell Sort | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| Sieve of Eratosthenes | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||
| Sleep Sort | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
Implemented Data Structures
| Data Structure | C | CPP | Java | Python | Golang | JavaScript | C# |
|---|---|---|---|---|---|---|---|
| AVL Tree | :white_check_mark: | :white_check_mark: | |||||
| Binary Search Tree | :white_check_mark: | :white_check_mark: | :white_check_mark: | ||||
| Linked List | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| Queue | :white_check_mark: | ||||||
| Stack | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |
| Trie | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | |||
| Queue | :white_check_mark: |
How to run them
| Language | Steps |
|---|---|
| C | gcc [filename.c] |
| CPP | g++ [filename.cpp] |
| Java | javac [filename.java] |
| Python | python [filename.py] |
| Golang | go run [filename.go] |
| JavaScript | node [filename.js] |
| C# | mcs [filename.cs] |
Resources
- Algorithms - Learneroo
- Awesome-Algorithms
- Algorithms List - GeeksforGeeks
- Intro to Algorithms - Khan Academy
- Popular Data Structures and Algorithms - Codechef
- Stanford-ACM-Codes - A list of codes written by previous Stanford ACM team members and coaches.
- Data Structures and Algorithms - A user ranked list of online tutorials to learn Data Structures and Algorithms online.
Contributing
See CONTRIBUTING.md.
If you plan to suggest a new algorithm or DS, please make sure to read the guidelines.
Credits
Idea by @Monal5031
Project Maintainers
Only project maintainers should merge a PR. Other members can add their reviews to a PR but the merging should be done by only a project maintainer.