Data Structures and Algorithms

The guiding question

Why can the same problem get orders of magnitude faster just by organizing the data differently?

Episodes

  1. 1Arrays and Linked Lists: Contiguous vs. PointersComing soon
  2. 2Hash Tables: Trading Space for TimeComing soon
  3. 3Bloom Filters: “Have I Seen This?” in Tiny MemoryPublished
  4. 4Binary Search Trees and Balanced TreesComing soon
  5. 5B-Trees and B+ Trees: Database IndexesComing soon
  6. 6Skip Lists: Coin Flips Instead of RotationsComing soon
  7. 7Heaps and Priority QueuesComing soon
  8. 8LSM Trees: Turning Random Writes into Sequential OnesComing soon
  9. 9The Sorting Family: Lower Bounds and Radix SortComing soon
  10. 10Graph Search and Shortest Paths: BFS, Dijkstra, A*Coming soon
  11. 11Dynamic Programming: From Recursion to TablesComing soon
  12. 12Strings: Tries and KMPComing soon
  13. 13Finale: One Dataset, a Data-Structure ArenaComing soon