Skip to main content

Algorithms

Algorithm design is about choosing the right strategy — not just getting a correct answer, but getting it efficiently at scale. This section covers the core analysis tools, design patterns, and data structures that appear everywhere from interview questions to production systems.

Planned Topics

Analysis

  • Big-O, Θ, Ω notation — what they actually mean
  • Amortized analysis (dynamic arrays, union-find)
  • Recurrence relations and the Master Theorem

Sorting & Searching

  • Comparison sorts: Merge sort, Quicksort, Heapsort — interactive visualizer
  • Linear-time sorts: Counting sort, Radix sort
  • Binary search and its variants

Data Structures

  • Hash tables: open addressing vs. chaining, load factor, probing
  • Trees: BST, AVL, Red-Black, B-tree (interactive balance visualizer)
  • Heaps and priority queues
  • Graphs: adjacency list vs. matrix, BFS/DFS traversal

Graph Algorithms

  • Shortest path: Dijkstra, Bellman-Ford, A*
  • Minimum spanning tree: Kruskal, Prim
  • Topological sort and cycle detection

Design Patterns

  • Divide and conquer
  • Dynamic programming (memoization vs. tabulation)
  • Greedy algorithms and when they fail
  • Backtracking

Pages coming soon — check back or contribute a page using the template.