Hey friends! 👋
I'm excited to be on time for our date! I’ve been working on my time management lately, and one thing that helps is turning on Work Mode on my iPhone. It keeps me focused on things like this. :)
Last few Wednesdays, we looked at running time and space complexity separately.
Today, let’s see how they interact.
Sometimes, you can make your program faster by using more memory.
Other times, you can save memory, but it’ll take longer to run.
That’s the time–space trade-off.
⚖️ Examples of the Trade-Off
i. Faster at the cost of memory
// Precompute squares (uses more memory)
const squares = Array.from({length: 1000}, (_, i) => i * i);
// Accessing a square is O(1)
console.log(squares[500]); // super fast
Time: O(1) (instant lookup)
Space: O(n) (stored 1000 numbers)
ii. Less memory at the cost of time
// Compute squares on the fly (uses less memory)
function getSquare(n) {
return n * n;
}
console.log(getSquare(500)); // slower for repeated lookups
Time: O(1) per calculation, but repeated calls take longer overall
Space: O(1) (no array stored)
The takeaway
- There’s no perfect balance.
- Faster algorithms often use extra memory.
- Memory-efficient ones might run slower.
- Knowing both helps you make smarter design choices.
🧑🏾💻 Visualise It: CodePen Demo
We’ll build a simple chart to show the trade-off:
- Precomputed array → fast but memory-hungry
- On-the-fly computation → slower but light on memory
Move the slider to change the input size, and watch how the chart updates.
Hit Reset to start again.
👉 Time vs Space Visualiser (CodePen)
How It Works
-
Blue line: Precomputed squares — fast, but memory increases with
n
. - Green line: On-the-fly — slower, minimal memory use.
- Yellow line: Memory usage for the precomputed array.
🙋🏾♀️ Wrap-Up
Complexity | Meaning | Example usage |
---|---|---|
O(1) | Constant space | Simple maths or fixed variables |
O(n) | Grows with input | Building an array or list |
O(n²) | Grows faster | Nested loops creating data |
That’s it for today!
What should we talk about next Wednesday? Drop it below 👇
Connect with me on GitHub
Was this tutorial helpful? Got questions? Drop them in the 💬, I love feedback.
I’m keeping these light, fun, and useful, one small project at a time.
If you enjoyed this, leave a 💬 or 🧡 to let me know.
Follow me for more short, beginner-friendly JavaScript lessons every week.
I'm still hunting for full stack roles,
contract or full-time.
Please check out my [Portfolio](https://gift-egbonyi.onrender.com)
Web trails:
LinkedIn | X (Twitter)
See you next Wednesday 🚀, on time!
Till then, write clean code and stay curious. 🦋
Top comments (0)