For loop in C++ - Time & Space Complexity
We want to understand how the time a for loop takes changes as we increase the number of times it runs.
How does the work grow when the loop runs more times?
Analyze the time complexity of the following code snippet.
for (int i = 0; i < n; i++) {
// simple operation
sum += i;
}
This code adds numbers from 0 up to n-1 to a sum using a for loop.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The addition inside the loop (sum += i;)
- How many times: Exactly n times, once for each loop cycle
As n grows, the number of additions grows the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 additions |
| 100 | 100 additions |
| 1000 | 1000 additions |
Pattern observation: The work grows directly with n; doubling n doubles the work.
Time Complexity: O(n)
This means the time grows in a straight line with the number of loop cycles.
[X] Wrong: "The loop runs fast enough that its time doesn't depend on n."
[OK] Correct: Even if each step is quick, doing more steps still takes more time overall.
Understanding how loops affect time helps you explain your code clearly and shows you know how programs scale.
"What if we added a nested for loop inside this loop? How would the time complexity change?"
Practice
What does a for loop in C++ do?
Solution
Step 1: Understand the purpose of a for loop
A for loop is designed to repeat code multiple times based on a condition.Step 2: Identify the correct description
Among the options, only repeating code a fixed number of times matches the for loop's behavior.Final Answer:
Repeats a block of code a fixed number of times -> Option DQuick Check:
For loop = repeat fixed times [OK]
- Thinking for loops run only once
- Confusing for loops with if statements
- Believing for loops stop the program
Which of the following is the correct syntax for a for loop in C++?
for (___; i < 5; i++) {
// code
}Solution
Step 1: Check initialization syntax in for loop
The initialization part must declare and initialize the loop variable, e.g.,int i = 0.Step 2: Compare options for correctness
Onlyint i = 0correctly declares and initializes the variable.Final Answer:
int i = 0 -> Option AQuick Check:
Initialization needs declaration and assignment [OK]
- Using 'int i' without initialization
- Using 'int i == 0' which is a comparison
- Omitting the type declaration
What is the output of this code?
for (int i = 1; i <= 3; i++) {
std::cout << i * 2 << " ";
}Solution
Step 1: Identify loop iterations
The loop runs with i = 1, 2, 3 because condition is i <= 3.Step 2: Calculate output for each iteration
Outputs are i*2: 2, 4, 6 printed with spaces.Final Answer:
2 4 6 -> Option BQuick Check:
Multiply i by 2 each loop [OK]
- Confusing loop range (off by one)
- Printing i instead of i*2
- Missing spaces in output
Find the error in this for loop:
for (int i = 0; i > 5; i++) {
std::cout << i << " ";
}Solution
Step 1: Analyze the loop condition
The condition isi > 5but i starts at 0, so it is false immediately.Step 2: Understand loop execution
Since condition is false at start, loop body never executes.Final Answer:
The condition 'i > 5' is incorrect, loop never runs -> Option CQuick Check:
Condition false at start means no loop runs [OK]
- Assuming loop runs despite false condition
- Thinking missing semicolon causes error here
- Confusing variable declaration errors
How can you use a for loop to print all even numbers from 2 to 10 inclusive?
Choose the correct code snippet:
Solution
Step 1: Understand the goal
We want to print even numbers 2,4,6,8,10 inclusive.Step 2: Check each option
for (int i = 2; i <= 10; i += 2) { std::cout << i << ' '; } increments by 2 starting at 2, printing 2,4,6,8,10 correctly.
for (int i = 1; i < 10; i++) { if (i % 2 == 0) std::cout << i << ' '; } prints 2,4,6,8 but misses 10.
for (int i = 2; i < 10; i++) { std::cout << i * 2 << ' '; } prints 4,6,8,10,12,14,16,18 (wrong range).
for (int i = 0; i <= 10; i += 3) { std::cout << i << ' '; } increments by 3, not even numbers.Final Answer:
for (int i = 2; i <= 10; i += 2) { std::cout << i << ' '; } -> Option AQuick Check:
Increment by 2 from 2 to 10 [OK]
- Using wrong increment step
- Forgetting to include 10
- Using condition inside loop unnecessarily
Ready to prove it?
Pass the test and this pattern moves unknown
