Each for iteration in Ruby - Time & Space Complexity
We want to understand how the time it takes to run a Ruby each loop changes as the list gets bigger.
How does the number of steps grow when we use each to go through items?
Analyze the time complexity of the following code snippet.
numbers = [1, 2, 3, 4, 5]
numbers.each do |num|
puts num * 2
end
This code goes through each number in the list and prints double its value.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The each loop runs once for every item in the list.
- How many times: Exactly as many times as there are items in the array.
As the list gets bigger, the number of times the loop runs grows the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 times |
| 100 | 100 times |
| 1000 | 1000 times |
Pattern observation: The work grows directly with the number of items. Double the items, double the work.
Time Complexity: O(n)
This means the time to finish grows in a straight line with the number of items.
[X] Wrong: "The each loop runs a fixed number of times no matter the list size."
[OK] Correct: The loop runs once for every item, so if the list grows, the loop runs more times.
Understanding how loops grow with input size helps you explain your code clearly and shows you know how programs handle bigger data.
"What if we nested one each loop inside another? How would the time complexity change?"