Topics

Design and Analysis of Algorithms

Chapter 01

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.

data arrays 2D addressing
Chapter 02

Basics 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.

bubble sort loops paradigms
Chapter 03

Analyzing 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.

insertion sort loop invariant binary search recurrence
Chapter 04

Asymptotic 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.

Big-O Ω and Θ small-o
Chapter 05

Recursion 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.

recursion recursion trees Master Theorem binary search
Chapter 06

Divide 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.

merge sort quicksort randomized analysis Strassen
Chapter 07

Linked 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.

linked lists stack queue ADT
Chapter 08

Trees 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.

binary trees traversals BFS BST
Chapter 09

Heap 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.

heaps heapify heap sort Fibonacci heap
Chapter 10

Greedy Algorithms

Greedy-choice and optimal-substructure principles through fractional knapsack, Huffman coding with priority queues, job sequencing with deadlines, and the optimal merge pattern.

greedy knapsack Huffman coding job sequencing optimal merge
Chapter 11

Graph Data Structure

Graph terminology and representations, breadth-first and depth-first search, topological sorting, cycle detection, articulation points, and shortest paths.

graphs BFS DFS topological sort shortest paths
Chapter 12

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.

Dijkstra Bellman–Ford MST Prim Kruskal
Coming soon
Chapter 13

Dynamic 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.

dynamic programming knapsack matrix chain rod cutting
Chapter 14

B-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.

B-tree B+ tree indexing disk access
Chapter 15

Hashing

Hash functions, direct addressing, collision resolution by chaining and open addressing, safe deletion, Bloom filters, and dynamic hashing.

hash tables probing Bloom filters
Chapter 16

NP-Completeness

Decision and optimization problems, P and NP, NP-complete and NP-hard classes, 3-SAT, and polynomial-time reductions.

P vs NP 3-SAT reductions
Chapter 17

Branch and Bound

Best-first branch and bound for 0/1 knapsack, fractional upper bounds, priority-queue exploration, pruning, code, and complexity.

knapsack upper bound best-first search
No chapter matches your search. Try a broader term — e.g. "sort", "tree", "heap", or "greedy".