Breaking down a complex problem into smaller, more manageable subproblems that can be solved individually and combined to solve the overall problem.
Identifying recurring patterns or structures in data or problems that can help simplify the design of algorithms or solutions.
Representing and processing data that has a hierarchical or nested structure (e.g., trees, organizational charts).
~In the world of software, the best way to predict the future is to invent it.
A strategy where algorithms explore solutions boldly while cautiously avoiding pitfalls (e.g., depth-first search vs. breadth-first search).
A key step in graph algorithms like Dijkstra's and Bellman-Ford, where the shortest path estimate to a vertex is updated if a better path is found.
Techniques used in balanced tree data structures (e.g., AVL trees, Red-Black trees) to maintain balance and optimize search times.