
The AlgoDoodle Universe 🪐
Data structures and algorithms are highly interconnected! Notice how specific problems (like the Knapsack problem) can be solved using entirely different paradigms (like DP vs Greedy). Use the graph below to intuit these relationships!
You can conveniently select any algorithm from the sidebar!
Each algorithm includes interactive step-by-step visualizers and explanations to help you understand the core concepts.
Terminology Reference
- 🔄Passes:Iterations over data
- 👉Pointers:Variables that store memory addresses
- ⏱️BigO Time Complexity:It represents the time, that is, the number of steps taken by an algorithm to solve a problem.
- O(1) Constant time. Resolves in a single go regardless of input size!
- O(n) Linear time. Steps increase linearly with inputs.
- O(log n) Logarithmic time. Usually involves splitting problems (e.g., Binary Search).
- O(n^2) Quadratic time. Often undesirable, indicates nested loops.
- 💾BigO Space Complexity:It represents the amount of memory space that an algorithm uses to solve a problem as the input size grows.
- O(1) Constant memory base. Most desirable.
- O(n) Memory scales linearly with inputs.
- O(log n) Memory scales logarithmically, often via call stack in recursion.
- O(n^2) Quadratic memory. Matrix/2D DP table requirements.