Hi all,
I need your help to make a list of most used data structures and algorithms along with their tutorials, implementation and some problems on them. It will be helpful to everyone in many ways. I request everyone to contribute to this list by providing links to tutorials, problems, etc. I will keep updating this list regularly.
-
Binary Search :
Tutorial, Problems, Tutorial, Implementation, Problem -
Quicksort :
Tutorial, Implementation, Tutorial -
Merge Sort :
Tutorial, Implementation, Tutorial -
Suffix Array :
Tutorial, Tutorial, Implementation, Tutorial, Implementation, Problem, Problem -
Knuth-Morris-Pratt Algorithm (KMP) :
Tutorial, Tutorial, Implementation, Tutorial, Problem -
Rabin-Karp Algorithm :
Tutorial, Implementation, Tutorial, Problem, Problem -
Tries :
Tutorial, Problems, Tutorial : I, II, Tutorial, Problem, Problem, Problem -
Depth First Traversal of a graph :
Tutorial, Impelementation, Tutorial, Problems, Problem, Problem, Problem -
Breadth First Traversal of a graph :
Tutorial, Impelementation, Tutorial, Problems, Problem, Problem, Problem, Flood Fill -
Dijkstra’s Algorithm :
Tutorial, Problems, Problem, Tutorial(greedy), Tutorial (with heap), Implementation, Problem, Problem -
Binary Indexed Tree :
Tutorial, Problems, Tutorial, Original Paper, Tutorial, Tutorial, Problem, Problem,
Problem, Problem, Problem, Problem, Problem -
Segment Tree (with lazy propagation) :
Tutorial, Implementation, Tutorial, Tutorial, Problems, Implementation, Tutorial, Implementation and Various Uses, Persistent Segment Tree: I, II, problems same as BIT, Problem, Problem/HLD is used as well/ -
Z algorithm :
Tutorial, Problem, Tutorial, Tutorial, problems same as KMP. -
Floyd Warshall Algorithm :
Tutorial, Implementation, Problem, Problem -
Sparse Table (LCP, RMQ) :
Tutorial, Problems, Tutorial, Implementation(C++), Java implementation -
Heap / Priority Queue / Heapsort :
Implementation, Explanation, Tutorial, Implementation, Problem, Chapter from CLRS -
Binomial coefficients (nCr % M): Tutorial, Tutorial, Paper (Link Not Working), Problem
-
Suffix Automaton :
Detailed Paper, Tutorial, Implementation (I), Tutorial, Implementation (II), Problem, Problem, Problem, Problem, Tutorial, Implementation -
Lowest Common Ancestor :
Tutorial, Problems, Paper, Paper, Problem, Problem, Problem -
Counting Inversions :
Divide and Conquer, Segment Tree, Fenwick Tree, Problem -
Suffix Tree :
Tutorial, Tutorial, Intro, Construction : I, II, Implementation, Implementation, Problem, Problem, Problem, Problem -
Dynamic Programming :
Chapter from CLRS(essential), Tutorial, Problems, Problem, Problem, Problem, Problem, Tutorial, Problem, Problem, Problem, Longest Increasing Subsequence, Bitmask DP, Bitmask DP, Optimization, Problem, Problem, Problem, Problem, Problem, Problem, Problem, DP on Trees : I, II -
Basic Data Structures :
Tutorial, Stack Implementation, Queue Implementation, Tutorial, Linked List Implementation -
Graphs :
Definition, Representation, Definition, Representation, Problem, Problem -
Minimum Spanning Tree :
Tutorial, Tutorial, Kruskal’s Implementation, Prim’s Implementation, Problem, Problem, Problem, Problem, Problem -
Combinatorics :
Tutorial, Problems, Problem, Tutorial -
Union Find/Disjoint Set :
Tutorial, Tutorial, Problems, Problem, Problem, Problem -
Knapsack problem :
Solution, Implementation -
Aho-Corasick String Matching Algorithm :
Tutorial, Implementation, Problem, Problem, Problem, Problem -
Strongly Connected Components :
Tutorial, Implementation, Tutorial, Problem, Problem, Problem -
Bellman Ford algorithm :
Tutorial, Implementation, Tutorial, Implementation, Problem, Problem -
Heavy-light Decomposition :
Tutorial, Problems, Tutorial, Implementation, Tutorial, Implementation, Implementation, Problem, Problem, Problem -
Convex Hull :
Tutorial, Jarvis Algorithm Implementation, Tutorial with Graham scan, Tutorial, Implementation, Problem, Problem, Problem, Problem, Problem -
Line Intersection :
Tutorial, Implementation, Tutorial, Problems -
Interval Tree :
Tutorial, Implementation, Problem, Problem, Problem, Problem, Problem, Problem, Tutorial -
Network flow :
(Max Flow)Tutorial : I, II, Max Flow(Ford-Fulkerson) Tutorial, Implementation, (Min Cut) Tutorial, Implementation, (Min Cost Flow)Tutorial : I, II, III, Dinic’s Algorithm with Implementation, Max flow by Edmonds Karp with Implementation, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem -
K-d tree :
Tutorial, Tutorial, Implementation, Problem -
Binary Search Tree :
Tutorial, Implementation, Searching and Insertion, Deletion -
Quick Select :
Implementation, Implementation -
Treap/Cartesian Tree :
Tutorial(detailed), Tutorial, Implementation, Uses and Problems, Problem, Problem -
Game Theory :
Detailed Paper, Tutorial, Problems, Grundy Numbers, Tutorial with example problems - I, II, III, IV, Tutorial, Problems, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Nim -
STL (C++) :
I, II, Crash Course -
Manacher’s Algorithm :
Implementation, Tutorial, Tutorial, Implementation, Tutorial, Implementation, Problem, Problem, Problem -
Detecting Cycles in a Graph : Directed - I, II
Undirected : I -
Backtracking :
N queens problem, Tug of War, Sudoku -
Eulerian and Hamiltonian Paths :
Tutorial, Tutorial, (Eulerian Path and Cycle)Implementation, (Hamiltonian Cycle)Implementation -
Graph Coloring :
Tutorial, Implementation -
Meet in the Middle :
Tutorial, Implementation -
Johnson’s Algorithm :
Tutorial, Tutorial, Implementation -
Maximal Matching in a General Graph :
Blossom/Edmond’s Algorithm, Implementation, Tutte Matrix, Problem -
Recursion : I, II, Towers of Hanoi with explanation
-
Link-Cut Tree :
Tutorial, Wiki, Tutorial, Implementation, Problem, Problem, Problem, Problem -
Euler’s Totient Function :
Explanation, Implementation, Problems, Explanation, Problems -
Edit/Levenshtein Distance :
Tutorial, Introduction, Tutorial, Problem, Problem -
Mo’s Algorithm : Tutorial and Problems