NOTE
Data Structures and Algorithms
A practical framework for choosing data structures and algorithms by operations, constraints, complexity, and memory/locality.
This is a historical learning note and may contain outdated or incomplete understanding.
Choose data structures from the operations that dominate: indexed access, membership, ordering/range, priority, prefix search, graph connectivity, queueing, or compact representation.
Analyze time and space complexity, but also account for constants, cache locality, allocation, I/O, concurrency, and input distribution.
Algorithm design patterns such as divide-and-conquer, dynamic programming, greedy choice, backtracking, graph traversal, and binary search are reusable ways to exploit problem structure—not recipes to apply blindly.