If you would like to contribute to this repo, please contact me.
This is a continuously updating list of some of the most essential algorithms implemented in pseudocode, C++14, Python 3.6 and Java. You can find a comprehensive explanation of some of the algorithms present in this repo here:
- https://dev.to/iuliagroza/complete-introduction-to-the-30-most-essential-data-structures-algorithms-43kd
- https://medium.com/marketing-and-entrepreneurship/complete-introduction-to-the-30-most-essential-data-structures-algorithms-5f8090773d21
- https://twitter.com/gg_iulia
- Divide and conquer
- Bubble Sort
- Insertion Sort
- Counting Sort
- Selection Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Radix Sort
- Linear Search
- Binary Search
- Sieve of Erathostenes
- Knuth-Morris-Pratt Algorithm (KMP)
- Greedy. Maximum number of non-overlapping intervals on an axis
- Fractional Knapsack Problem
- Dynamic Programming. 0-1 Knapsack Problem
- Longest Common Subsequence
- Longest Increasing Subsequence
- Convex Hull
- Breadth-First Search (BFS)
- Depth-First Search (DFS)
- Floyd-Warshall / Roy-Floyd
- Dijkstra
- Bellman-Ford
- Kruskal
- Topological Sorting
Pseudocode Implementation: 1-7, 9-25 - @iuliagroza / 8 - @notreallystatic
C++ Implementation: 1-7, 9-25 - @iuliagroza / 8 - @notreallystatic
Python Implementation: 1-2, 4-22 - @iuliagroza / 3, 23-26 - @MahmoudFettal
Java Implementation: 3, 5 - @Abbeyme1