This is a continuously updating list of some of the most essential algorithms implemented in pseudocode, C++14, Python 3 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/_iuliagroza
- Bellman-Ford
- Binary Search
- Breadth-First Search (BFS)
- Bubble Sort
- Convex Hull
- Counting Sort
- Depth-First Search (DFS)
- Dijkstra
- Divide & Conquer
- Dynamic Programming. 0-1 Knapsack Problem
- Fleury
- Floyd-Warshall / Roy-Floyd
- Fractional Knapsack Problem
- Greedy. Maximum number of non-overlapping intervals on an axis
- Heap Sort
- Insertion Sort
- Kempe
- Kempe Linear
- Knuth-Morris-Pratt (KMP)
- Kruskal
- Linear Search
- Longest Common Subsequence
- Longest Increasing Subsequence
- Merge Sort
- Quick Sort
- Radix Sort
- Selection Sort
- Sieve of Erathostenes
- Topological Sorting
- Create an issue where you document your contribution (i.e. mention the algorithm you want to develop the source code for, and the programming language).
- Propose your changes in a new branch with the name
<issue_id> <algorithm_name> <programming_language>
and create a pull request. - [IMPORTANT] Please make sure to be consistent in terms of project/directories structure and style guide!
- Wait for review & approvals, and be proud of yourself :) Your contribution is highly appreciated!