A repository for all Algorithms
Tech Stacks
Programs we have been a part of
Available Resources
Arrays
| No. |
Algorithm Name |
Available languages |
| 1. |
Diagonal Print Algorithm in 2D Array |
C, C++, Java, Python |
| 2. |
Fisher-Yates Algorithm |
C, C++, Java, Python |
| 3. |
Monotonic Array |
C, C++, Java, Python |
| 4. |
Spiral Print Matrix |
C, C++, Java, Python |
Artificial Intelligence
| No. |
Algorithm Name |
Available languages |
| 1. |
A* Search Algorithm |
C, C++, Java, Python |
Binary
| No. |
Algorithm Name |
Available languages |
| 1. |
Binary <-> Gray Code Conversion |
C, C++, Java, Python |
| 2. |
Brian Kerningham's Algorithm |
C, C++, Java, Python |
| 3. |
Hamming Code |
C, C++, Java, Python |
| 4. |
Hamming Distance Theorem |
C, C++, Java, Python |
Cryptography
| No. |
Algorithm Name |
Available languages |
| 1. |
Affine Cipher |
C, C++, Java, Python |
| 2. |
Caesar Cipher |
C, C++, Java, Python |
| 3. |
Columnar Transposition Cipher |
C, C++, Java, Python |
| 4. |
Diffie - Hellman Algorithm |
Python |
| 5. |
Elgamal Cryptosystem |
C, C++, Java, Python |
| 6. |
Hill Cipher |
C, C++, Java, Python |
| 7. |
Homophonic Substitution |
C, C++, Java, Python |
| 8. |
Morse Code |
C, C++, Java, Python |
| 9. |
Playfair Cipher |
C, C++, Java, Python |
| 10. |
Railfence Cipher |
C, C++, Java, Python |
| 11. |
RSA |
C, C++, Java, Python |
| 12. |
SHA - 256 |
C, C++, Java, Python |
| 13. |
Vernam Cipher |
C, C++, Java, Python |
| 14. |
Vignere Cipher |
C++, Java, Python |
Concurrent Programming
| No. |
Algorithm Name |
Available languages |
| 1. |
Peterson's Algorithm |
C, C++, Java, Python |
Data Compression
Deadlock Avoidance
| No. |
Algorithm Name |
Available languages |
| 1. |
Banker's Algorithm |
C, C++, Java,Python |
Deep Learning
| No. |
Algorithm Name |
Available languages |
| 1. |
Perceptron Learning - Boolean Functions |
Python |
Divide and Conquer
Dynamic Programming
| No. |
Algorithm Name |
Available languages |
| 1. |
0/1 Knapsack |
C, C++, Java, Python |
| 2. |
Coin change problem |
C, C++, Java, Python |
| 3. |
Edit Distance |
C++ |
| 4. |
Fibonacci Number |
C, C++, Java, Python |
| 5. |
Hierholzer Algorithm |
C, C++, Java, Python |
| 6. |
Longest Common Subsequence |
C, C++, Java, Python |
| 7. |
Matrix Chain Multiplication |
C, C++, Java, Python |
| 8. |
Minimum Jump Algorithm |
C, C++, Java, Python |
| 9. |
Minimum Sum Partition Problem |
C, C++, Java, Python |
| 10. |
Partition problem |
C++, Java |
| 11. |
Shortest Common Supersequence Problem |
C, C++, Java, Python |
| 12. |
Travelling Salesman Problem |
C, C++, Java, Python |
Game Theory
| No. |
Algorithm Name |
Available languages |
| 1. |
Grundy's Number |
C, C++, Java, Python |
Graphics
| No. |
Algorithm Name |
Available languages |
| 1. |
Scanline Algorithm |
C++, Python |
Graphs
| No. |
Algorithm Name |
Available languages |
| 1. |
Bellman Ford |
C++ |
| 2. |
Breadth First Search(BFS) |
C, C++, Java, Python |
| 3. |
Dial’s Algorithm |
C, C++, Java, Python |
| 4. |
Dijkstra |
C, C++, Java, Python |
| 5. |
Dinic's Algorithm |
C++, Java, Python |
| 6. |
Disjoint Set Union |
C, C++, Java, Python |
| 7. |
Edmonds-karp Algorithm |
C, C++, Java, Python |
| 8. |
Fleury's Algorithm |
C, C++, Java, Python |
| 9. |
Floyd Warshall |
C, C++, Java, Python |
| 10. |
Ford-Fulkerson Algorithm |
C, C++, Java, Python |
| 11. |
Hamiltonian Path |
Java |
| 12. |
Hopcroft-Karp Algorithm |
C, C++, Java, Python |
| 13. |
Kosaraju's Algorithm |
C++ |
| 14. |
Kruskal's Algorithm |
C, C++, Java, Python |
| 15. |
Multi Source Shortest Path |
C, C++, Java, Python |
| 16. |
Multistage Graph (Shortest Path) |
C, C++, Java, Python |
| 17. |
Prim's Algorithm |
C, C++, Java, Python |
| 18. |
Stoer Wagner Algorithm |
C, C++, Java, Python |
| 19. |
Tarjan Algorithm |
C, C++, Java, Python |
Greedy Algorithm
| No. |
Algorithm Name |
Available languages |
| 1. |
Activity Selection |
C, C++, Java, Python |
| 2. |
Egyptian Fraction |
C, C++, Java, Python |
| 3. |
Fractional Knapsack |
C, C++, Java, Python |
| 4. |
Job Sequencing |
C, C++, Java, Python |
| 5. |
Merge Interval Algorithm |
C, C++, Java, Python |
| 6. |
Optimal Merge Pattern |
C, C++, Java, Python |
Hashing
Image Processing
| No. |
Algorithm Name |
Available languages |
| 1. |
Canny Edge Detection |
C, C++, Java, Python |
Job Scheduling
| No. |
Algorithm Name |
Available languages |
| 1. |
First Come First Serve |
C, C++, Java, Python |
| 2. |
Highest Response Ratio Next |
C, C++, Java, Python |
| 3. |
Priority Scheduling |
C, C++, Java, Python |
| 4. |
Round Robin Scheduling |
C, C++, Java, Python |
| 5. |
Shortest Job First |
C, C++, Java, Python |
Linked List
| No. |
Algorithm Name |
Available languages |
| 1. |
Addition of two Linked Lists |
C, C++, Java, Python |
| 2. |
Circular Linked List |
C, C++, Java, Python |
| 3. |
Detect loop in a Linked List |
C++ |
| 4. |
Doubly Linked List |
C, C++, Java, Python |
| 5. |
Intersection of two Linked Lists |
C, C++, Java, Python |
| 6. |
Length of Linked List |
C, C++, Java, Python |
| 7. |
LRU Cache Design |
C, C++, Java, Python |
| 8. |
Merge Two Sorted Linked List |
C, C++, Java, Python |
| 9. |
Merge K Sorted Linked List |
C, C++, Java, Python |
| 10. |
Palindrome Linked List |
C, C++, Java, Python |
| 11. |
Reverse Linked List |
C, C++, Java, Python |
| 12. |
Reverse Linked List in a Group of K |
C, C++, Java, Python |
| 13. |
Singly Linked List |
C, C++, Java, Python |
| 14. |
Sorting Linked List |
C, C++, Java, Python |
Machine Learning
| No. |
Algorithm Name |
Available languages |
| 1. |
Decision Tree |
Python |
| 2. |
Feed-Forward Neural Network |
C++ |
| 3. |
K-Means Clusters |
C, C++, Python |
| 4. |
K-Nearest Neighbours |
C, C++, Java, Python |
| 5. |
Linear Regression |
C, C++, Java, Python |
| 6. |
Logistic Regression |
C, C++, Java, Python |
| 7. |
Naive Bayes |
C++, Python |
Maths
| No. |
Algorithm Name |
Available languages |
| 1. |
Armstrong Numbers |
C, C++, Java, Python |
| 2. |
Binary Exponentiation |
C, C++, Java, Python |
| 3. |
Binomial Theorem |
C, C++, Java, Python |
| 4. |
Bennett's Formula |
C, C++, Java, Python |
| 5. |
Bentley-Ottmann Algorithm |
C, C++, Java, Python |
| 6. |
Bisection Algorithm |
C, C++, Java, Python |
| 7. |
Chinese Remainder Theorem |
C, C++, Java, Python |
| 8. |
Chudnovsky Algorithm |
C, C++, Java, Python |
| 9. |
Closures of Relations |
C, C++, Java, Python |
| 10. |
Congruency of Triangle |
C, C++, Java, Python |
| 11. |
Decimal <-> Binary Converter |
C, C++, Java, Python |
| 12. |
Extended Euclidean Algorithm |
C, C++, Java, Python |
| 13. |
Euler's Totient Function |
C, C++, Java, Python |
| 14. |
Factorial of Number |
C, C++, Java, Python |
| 15. |
Factors |
C, C++, Java, Python |
| 16. |
Frievald's Algorithm |
C, C++, Java, Python |
| 17. |
GCD & LCM |
C, C++, Java, Python |
| 18. |
Heron's Formula |
C, C++, Java, Python |
| 19. |
Interquartile Ranges |
C, C++, Java, Python |
| 20. |
Josephus Problem |
C, C++, Java, Python |
| 21. |
Klee's Algorithm |
C, C++, Java, Python |
| 22. |
Lucas Lehmer Series |
C, C++, Java, Python |
| 23. |
Luhn's Algorithm |
C, C++, Java, Python |
| 24. |
Manhattan Distance |
C, C++, Java, Python |
| 25. |
Modular Exponentiation |
C, C++, Java, Python |
| 26. |
Pascal's Triangle |
C, C++, Java, Python |
| 27. |
Perfect Number |
C, C++, Java, Python |
| 28. |
Power-set of Elements |
C, C++, Java, Python |
| 29. |
Prefix-Postfix-Infix Interconversion |
C++, Python |
| 30. |
Prime Number |
C, C++, Java, Python |
| 31. |
Quickhull Algorithm |
C ,C++, Java, Python |
| 32. |
Reverse Integer |
C, C++, Java, Python |
| 33. |
Roman to Decimal converter |
C, C++, Java, Python |
| 34. |
Russian Peasant Algorithm |
C, C++, Java, Python |
| 35. |
Shri Dharayacharya Algorithm |
C, C++, Java, Python |
| 36. |
Sieve Eratosthenes Algorithm |
C, C++, Java,Python |
| 37. |
Similar Triangles |
C, C++, Java, Python |
| 38. |
Strong Number |
C, C++, Java, Python |
| 39. |
Sudoku Solver |
C, C++, Java, Python |
| 40. |
Zeller's Algorithm |
C, C++, Java, Python |
Memory Allocation
Optimization
| No. |
Algorithm Name |
Available languages |
| 1. |
Ant Colony Optimization |
Python |
| 2. |
Genetic Algorithm |
C++, Python |
| 3. |
Gradient Descent |
Python |
| 4. |
Grey Wolf Optimization |
C, C++, Java, Python |
| 5. |
Hill Climbing Algorithm |
C, C++, Java, Python |
| 6. |
Particle Swarm Optimization |
C++, Python |
| 7. |
Shuffled Frog Leaping Algorithm |
C++, Python |
| 8. |
Simulated Annealing |
C++, Python |
Pattern Matching
| No. |
Algorithm Name |
Available languages |
| 1. |
Aho-Corasick Algorithm |
C, C++, Java, Python |
| 2. |
Boyer Moore Algorithm |
C, C++, Java, Python |
| 3. |
KMP Algorithm |
C, C++, Java, Python |
| 4. |
Rabin Karp |
C, C++, Java, Python |
| 5. |
Z - Algorithm |
C, C++, Java, Python |
Recursion
Searching
| No. |
Algorithm Name |
Available languages |
| 1. |
Binary Search on 2D Matrix |
C,C++, Java, Python |
| 2. |
Binary Search |
C, C++, Java, Python |
| 3. |
Exponential Search |
C, C++, Java, Python |
| 4. |
Fibonacci Search |
C, C++, Java, Python |
| 5. |
Interpolation Search |
C, C++, Java, Python |
| 6. |
Jump Search |
C, C++, Java, Python |
| 7. |
Linear Search |
C, C++, Java, Python |
| 8. |
Order Agnostic Binary Search |
C, C++, Java, Python |
| 9. |
Quick Select |
C, C++, Java, Python |
| 10. |
Sublist Search |
C, C++, Java, Python |
| 11. |
Ternary Search |
C, C++, Java, Python |
Sorting
| No. |
Algorithm Name |
Available languages |
| 1. |
3 Sum Problem |
C, C++, Java, Python |
| 2. |
Bead Sort |
C, C++, Java, Python |
| 3. |
Bidirectional Selection Sort |
C, C++, Java, Python |
| 4. |
Bingo Sort |
C, C++, Java, Python |
| 5. |
Bogo Sort |
C, C++, Java, Python |
| 6. |
Bubble Sort |
C, C++, Java, Python |
| 7. |
Bucket Sort |
C, C++, Java, Python |
| 8. |
Comb Sort |
C, C++, Java, Python |
| 9. |
Counting Sort |
C, C++, Java,Python |
| 10. |
Cyclic Sort |
C, C++, Java, Python |
| 11. |
Cocktail Sort |
C, C++, Java, Python |
| 12. |
Dutch National Flag |
C, C++, Java, Python |
| 13. |
Gnome Sort |
C, C++, Java, Python |
| 14. |
Heap Sort |
C, C++, Java, Python |
| 15. |
Insertion Sort |
C, C++, Java, Python |
| 16. |
Intro Sort |
C, C++, Java, Python |
| 17. |
Merge Sort |
C, C++, Java, Python |
| 18. |
Odd-Even Sort / Brick Sort |
C, C++, Java, Python |
| 19. |
Pancake Sort |
C, C++, Java, Python |
| 20. |
Pigeon-Hole Sort |
C, C++, Java, Python |
| 21. |
Quick Sort |
C, C++, Java, Python |
| 22. |
Radix Sort |
C, C++ Java, Python |
| 23. |
Randomized Quick Sort |
C, C++, Java, Python |
| 24. |
Selection Sort |
C, C++, Java, Python |
| 25. |
Shell Sort |
C, C++, Java, Python |
| 26. |
Stooge Sort |
C, C++, Java, Python |
| 27. |
Tim Sort |
C, C++, Java, Python |
| 28. |
Topological Sort |
C++ |
| 29. |
Wave Sort |
C++, Java, Python |
Stacks
| No. |
Algorithm Name |
Available languages |
| 1. |
Max Area in Histogram |
C, C++, Java, Python |
| 2. |
Next Greater Element |
C, C++, Java, Python |
| 3. |
Rain Water Problem |
C, C++, Java, Python |
| 4. |
Stack Using Priority Queue |
C, C++, Java, Python |
Strings
Sub-Arrays
Trees
| No. |
Algorithm Name |
Available languages |
| 1. |
AO* Tree |
C++, Java, Python |
| 2. |
AVL Tree |
C, C++, Java, Python |
| 3. |
B+ Tree |
C, C++, Java, Python |
| 4. |
Binary Search Tree |
C, C++ |
| 5. |
Binary Tree to BST |
C, C++, Java, Python |
| 6. |
Binary Tree Views(Left, Right, Top, Bottom) |
C, C++, Java, Python |
| 7. |
Fenwik Tree |
C, C++, Java, Python |
| 8. |
Min-Indexed D-Heap Algorithm |
C, C++, Java, Python |
| 9. |
Morris Traversal |
C, C++, Python |
| 10. |
Red-Black Tree |
C++, Java, Python |
| 11. |
Segment Tree |
C, C++, Java, Python |
| 12. |
Splay Trees |
C, C++, Java, Python |
| 13. |
Symmetric Tree Algorithm |
C, C++, Java, Python |
| 14. |
Ternary Search Tree |
C, C++, Java, Python |
| 15. |
Treap |
C, C++, Java, Python |
| 16. |
Tree Traversal |
C, C++, Java, Python |
| 17. |
Trie |
C, C++, Java, Python |
| 18. |
Van Emde Boas Tree |
C, C++, Java, Python |
Contributors 🫂
Steps for Contributing 🚀
Refer to this YouTube Video for reference!
- Fork the Repo
- Clone the forked Repo by typing the following commands in the terminal
$ git clone https://github.com/<your-github-username>/Algorithms.git
$ cd Algorithms
- Now to add your resource to website, add an object with keys same as listed in existing objects in the file.
- Save and commit your code.
- Push to your fork of the repository , navigate to original repository and make a pull request.
- Fork the Repo 'https://github.com/Kumar-laxmi/Algorithms.git'
- Clone the Repository after forking
$ git clone https://github.com/<your-github-username>/Algorithms.git
$ cd algorithms
$ git checkout -b <new-branch-name>
$ git status
- Stage your changes using:
$ git add .
- Commit your changes using:
$ git commit -m "add any comment"
- Push the changes to the forked repository using:
$ git push origin <new-branch-name>
- Navigate to the original repository and make a pull request
- In case of merge conflict fetch and merge from the remote repository

Please don't forget to update the Available Resources section
Happy?? Star ⭐ this Repo. 🤩