Course Roadmap

Full Design and Analysis of Algorithms syllabus arranged in course order from easy to hard. Algorithmic topics, theory concepts, and data-structure operation complexities are separated for clarity.

49 algorithm syllabus rows49 linked to detailed pagesOpen raw compare table

1. Basic Algorithms (Easy -> Moderate)

Core introductory algorithms and number-theory fundamentals.

TopicBestAverageWorstSpaceCoverage
Euclid Algorithm (GCD)O(log n)O(log n)O(log n)O(1)Existing
Linear SearchO(1)O(n)O(n)O(1)Existing
Binary SearchO(1)O(log n)O(log n)O(1)Existing
Chinese Remainder TheoremO(k log M)O(k log M)O(k log M)O(1)Existing

2. Sorting Algorithms (Easy -> Hard)

Comparison and non-comparison sorting techniques.

TopicBestAverageWorstSpaceCoverage
Selection SortO(n^2)O(n^2)O(n^2)O(1)Existing
Merge SortO(n log n)O(n log n)O(n log n)O(n)Existing
Quick SortO(n log n)O(n log n)O(n^2)O(log n)Existing
Counting SortO(n + k)O(n + k)O(n + k)O(k)Existing
Radix SortO(nk)O(nk)O(nk)O(n + k)Existing
Bucket SortO(n + k)O(n + k)O(n^2)O(n)Existing

3. String Matching Algorithms

Pattern matching on text with hashing and prefix-suffix techniques.

TopicBestAverageWorstSpaceCoverage
Rabin-KarpO(n + m)O(n + m)O(nm)O(1)Existing
KMP (Knuth-Morris-Pratt)O(n + m)O(n + m)O(n + m)O(m)Existing
Boyer-MooreO(n/m)O(n)O(nm)O(sigma)Existing

4. Graph Algorithms

Traversal and ordering fundamentals on graph structures.

TopicBestAverageWorstSpaceCoverage
Breadth First Search (BFS)O(V + E)O(V + E)O(V + E)O(V)Existing
Depth First Search (DFS)O(V + E)O(V + E)O(V + E)O(V)Existing
Topological SortO(V + E)O(V + E)O(V + E)O(V)Existing

5. Shortest Path Algorithms

Single-source and all-pairs shortest path methods.

TopicBestAverageWorstSpaceCoverage
Dijkstra (heap)O(E log V)O(E log V)O(E log V)O(V)Existing
Bellman-FordO(VE)O(VE)O(VE)O(V)Existing
Floyd-WarshallO(V^3)O(V^3)O(V^3)O(V^2)Existing

6. Minimum Spanning Tree

Greedy edge-selection strategies for spanning trees.

TopicBestAverageWorstSpaceCoverage
Prim's MSTO(E log V)O(E log V)O(E log V)O(V)Existing
Kruskal's MSTO(E log E)O(E log E)O(E log E)O(V)Existing
Sollin/Boruvka's MSTO(E log V)O(E log V)O(E log V)O(V)Existing

7. Divide and Conquer

Recursive decomposition into independent subproblems.

TopicBestAverageWorstSpaceCoverage
Binary Search (D&C view)O(1)O(log n)O(log n)O(1)Existing
Max and Min of SequenceO(n)O(n)O(n)O(1)Existing
Merge SortO(n log n)O(n log n)O(n log n)O(n)Existing
Quick SortO(n log n)O(n log n)O(n^2)O(log n)Existing
Selection SortO(n^2)O(n^2)O(n^2)O(1)Existing
Strassen's Matrix MultiplicationO(n^2.81)O(n^2.81)O(n^2.81)O(n^2)Existing

8. Greedy Algorithms

Locally optimal choices leading to globally optimal outcomes.

TopicBestAverageWorstSpaceCoverage
Fractional KnapsackO(n log n)O(n log n)O(n log n)O(1)Existing
Prim's MSTO(E log V)O(E log V)O(E log V)O(V)Existing
Kruskal's MSTO(E log E)O(E log E)O(E log E)O(V)Existing
Huffman CodingO(n log n)O(n log n)O(n log n)O(n)Existing
Optimal Merge PatternsO(n log n)O(n log n)O(n log n)O(n)Existing

9. Dynamic Programming

Tabulation and memoization for overlapping subproblems.

TopicBestAverageWorstSpaceCoverage
0/1 KnapsackO(nW)O(nW)O(nW)O(nW)Existing
Subset Sum (DP)O(nW)O(nW)O(nW)O(nW)Existing
Change Making (Coin Change)O(amount * coins)O(amount * coins)O(amount * coins)O(amount)Existing
Optimal Binary Search TreeO(n^3)O(n^3)O(n^3)O(n^2)Existing
Matrix Chain MultiplicationO(n^3)O(n^3)O(n^3)O(n^2)Existing
Longest Common SubsequenceO(mn)O(mn)O(mn)O(mn)Existing
Travelling Salesperson (DP / Held-Karp)O(n^2 * 2^n)O(n^2 * 2^n)O(n^2 * 2^n)O(n * 2^n)Existing

10. Backtracking

Systematic search with pruning on decision trees.

TopicBestAverageWorstSpaceCoverage
N-QueensN/AN/AO(n!)O(n)Existing
Sum of SubsetsN/AN/AO(2^n)O(n)Existing
Hamiltonian CycleN/AN/AO(n!)O(n)Existing

11. Branch and Bound

Bounding plus search to reduce combinatorial explosion.

TopicBestAverageWorstSpaceCoverage
0/1 Knapsack (Branch and Bound)N/AN/AO(2^n)O(n)Existing
Travelling Salesperson (Branch and Bound)N/AN/AO(n!)O(n)Existing

12. Geometry

Computational geometry core algorithm.

TopicBestAverageWorstSpaceCoverage
Convex Hull (Graham Scan)O(n log n)O(n log n)O(n log n)O(n)Existing

13. Sorting in Linear Time

Non-comparison sorting methods for constrained domains.

TopicBestAverageWorstSpaceCoverage
Counting SortO(n + k)O(n + k)O(n + k)O(k)Existing
Radix SortO(nk)O(nk)O(nk)O(n + k)Existing
Bucket SortO(n + k)O(n + k)O(n^2)O(n)Existing

Theory Topics (Separate)

Conceptual topics are listed independently; standard best/average/worst complexity does not apply.

TopicBestAverageWorstSpaceNotes
Modulo Arithmetic BasicsN/AN/AN/AN/ACovers congruence rules, modular inverse, and arithmetic properties used in hashing and number theory.
Complexity Class PN/AN/AN/AN/ADecision problems solvable in polynomial time by deterministic algorithms.
Complexity Class NPN/AN/AN/AN/ADecision problems whose proposed solutions can be verified in polynomial time.
NP-hard Basics and Proof PatternN/AN/AN/AN/AReduction-based hardness arguments from known NP-hard problems.
NP-complete Basics and Proof PatternN/AN/AN/AN/AShow membership in NP and NP-hardness via polynomial-time reductions.
Graph Representation ModelsN/AN/AN/AN/AAdjacency matrix, adjacency list, and edge list trade-offs.
Backtracking: General MethodN/AN/AN/AN/AState-space tree, feasibility checks, pruning strategy, and recursion template.
Branch and Bound: General MethodN/AN/AN/AN/ASearch with upper/lower bounds and node-selection strategy.
Divide and Conquer: General MethodN/AN/AN/AN/ADivide, conquer, combine recurrence design and master-theorem reasoning.
Greedy: General MethodN/AN/AN/AN/AGreedy-choice property and optimal substructure proof approach.
Dynamic Programming: General MethodN/AN/AN/AN/AState definition, transition, base cases, and tabulation order.
Divide and Conquer vs Dynamic ProgrammingN/AN/AN/AN/AIndependent subproblems vs overlapping subproblems and memoization reuse.

Data Structures Operations (Separate)

Operation-wise complexity reference for core data structures from your course syllabus.

Data StructureOperationBestAverageWorstSpace
ArrayAccess by indexO(1)O(1)O(1)O(n)
ArraySearch (unsorted)O(1)O(n)O(n)O(n)
ArrayInsert at end (dynamic array)O(1)O(1)O(n)O(n)
StackPush / PopO(1)O(1)O(1)O(n)
QueueEnqueue / DequeueO(1)O(1)O(1)O(n)
PointersDereference / updateO(1)O(1)O(1)O(1)
Singly Linked ListInsert at headO(1)O(1)O(1)O(n)
Singly Linked ListSearchO(1)O(n)O(n)O(n)
Doubly Linked ListInsert/Delete with node pointerO(1)O(1)O(1)O(n)
Circular Doubly Linked ListRotate by one stepO(1)O(1)O(1)O(n)
Hash TableLookupO(1)O(1)O(n)O(n)
Hash TableInsert / DeleteO(1)O(1)O(n)O(n)
BSTSearchO(log n)O(log n)O(n)O(n)
BSTInsert / DeleteO(log n)O(log n)O(n)O(n)
B-TreeSearchO(log n)O(log n)O(log n)O(n)
B-TreeInsert / DeleteO(log n)O(log n)O(log n)O(n)
AVL TreeSearch / Insert / DeleteO(log n)O(log n)O(log n)O(n)
Red-Black TreeSearch / Insert / DeleteO(log n)O(log n)O(log n)O(n)
HeapInsert / DeleteO(log n)O(log n)O(log n)O(n)
HeapPeek top elementO(1)O(1)O(1)O(n)
Graph (Adjacency List)Edge existence check (u, v)O(1)O(deg(u))O(V)O(V + E)
Graph (Adjacency Matrix)Edge existence check (u, v)O(1)O(1)O(1)O(V^2)
Graph (Edge List)Edge existence check (u, v)O(1)O(E)O(E)O(E)