Introduction, Data Structures & Arrays
Data vs information, why we organise data with data structures, and a close look at arrays — operations, strengths, and how 1D and 2D array elements are addressed in memory.
Chapter 02Basics of Algorithms
What an algorithm is, bubble sort and its three optimisations, analysing running time through loop counting, characteristics and classification of algorithms, design paradigms, and hard problems.
Chapter 03Analyzing Algorithms
Insertion sort and correctness through loop invariants, the assumptions behind the cost model, best/worst/average cases, linear and binary search, recurrence analysis, and selection sort.
Chapter 04Asymptotic Notations
Big-O, Omega, and Theta — precise definitions with bound plots, verifying and refuting claims, small-o and small-ω, the algebraic properties, and a bank of exam-style exercises.
Chapter 05Recursion and Divide & Conquer
Recursive functions and factorial, recurrence relations, substitution, exact recursion trees, the Master Theorem, binary search, and the divide-and-conquer design strategy.
Chapter 06Divide and Conquer Algorithms
Merge sort and in-place merging, quicksort and partitioning, probabilistic and randomized analysis, the Hiring Problem, matrix multiplication, Strassen’s algorithm, and powering a number.
Chapter 07Linked Lists, Stacks and Queues
Singly, doubly, and circular linked lists with insertion and deletion, followed by stack and queue operations, circular queues, applications, and abstract data types.
Chapter 08Trees and Binary Search Trees
Tree terminology and representations, binary-tree types and traversals, recursive and iterative depth-first traversal, level-order traversal, reconstruction from traversals, and BST searching and construction.
Chapter 09Heap Data Structure and Heap Sort
Complete binary trees and array representation, min-heap and max-heap properties, insertion and deletion, heapify, bottom-up heap construction, heap sort, amortized analysis, and Fibonacci heaps.
Chapter 10Greedy Algorithms
Greedy-choice and optimal-substructure principles through fractional knapsack, Huffman coding with priority queues, job sequencing with deadlines, and the optimal merge pattern.
Chapter 11Graph Data Structure
Graph terminology and representations, breadth-first and depth-first search, topological sorting, cycle detection, articulation points, and shortest paths.
Shortest Paths and Minimum Spanning Trees
Weighted single-source shortest paths, edge relaxation, Dijkstra’s and Bellman–Ford algorithms, negative-cycle detection, shortest-path variants, and minimum spanning trees using Prim’s and Kruskal’s algorithms.
Coming soonDynamic Programming
Overlapping subproblems and optimal substructure through Fibonacci memoization, 0/1 knapsack, matrix-chain multiplication, and rod cutting with top-down and bottom-up solutions.
Chapter 14B-Trees and B+ Trees
Disk-aware m-way search trees, multilevel indexing, B-tree insertion and deletion, B+ tree leaf links, capacity calculations, and real-world indexing applications.
Chapter 15Hashing
Hash functions, direct addressing, collision resolution by chaining and open addressing, safe deletion, Bloom filters, and dynamic hashing.
Chapter 16NP-Completeness
Decision and optimization problems, P and NP, NP-complete and NP-hard classes, 3-SAT, and polynomial-time reductions.
Chapter 17Branch and Bound
Best-first branch and bound for 0/1 knapsack, fractional upper bounds, priority-queue exploration, pruning, code, and complexity.