Relational operators in Java - Time & Space Complexity
Relational operators compare values to decide true or false. We want to see how the time to do these comparisons changes as input grows.
How does the number of comparisons affect the total time?
Analyze the time complexity of the following code snippet.
int count = 0;
for (int i = 0; i < n; i++) {
if (i < 10) {
count++;
}
}
This code counts how many numbers from 0 to n-1 are less than 10 using a relational operator.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The loop runs from 0 to n-1, checking if each number is less than 10.
- How many times: The relational check happens once per loop iteration, so n times.
Each time n grows, the loop runs more times, so the number of comparisons grows too.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 comparisons |
| 100 | 100 comparisons |
| 1000 | 1000 comparisons |
Pattern observation: The number of comparisons grows directly with n. Double n, double the comparisons.
Time Complexity: O(n)
This means the time to finish grows in a straight line as the input size grows.
[X] Wrong: "Since the relational check is simple, it takes constant time no matter what."
[OK] Correct: While one check is quick, the total time depends on how many times it runs. More input means more checks, so total time grows with n.
Understanding how simple comparisons add up helps you explain how loops affect performance. This skill shows you can think about code efficiency clearly.
"What if we replaced the loop with two nested loops both running n times? How would the time complexity change?"