If–else expression in Rust - Time & Space Complexity
We want to see how the time it takes to run an if-else expression changes as the input changes.
Specifically, does choosing one path or the other affect how long the program runs?
Analyze the time complexity of the following code snippet.
fn check_number(n: i32) -> &'static str {
if n > 0 {
"Positive"
} else {
"Non-positive"
}
}
This code checks if a number is positive or not and returns a message accordingly.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: A single if-else check.
- How many times: Exactly once per function call.
The program does one simple check no matter what the input number is.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 1 check |
| 100 | 1 check |
| 1000 | 1 check |
Pattern observation: The number of operations stays the same no matter how big the input number is.
Time Complexity: O(1)
This means the time to run the if-else expression does not grow with the input size; it stays constant.
[X] Wrong: "If-else expressions take longer when the input number is bigger."
[OK] Correct: The if-else only checks one condition once, so the input size does not affect how long it takes.
Understanding that simple decisions like if-else checks run in constant time helps you explain how your code behaves clearly and confidently.
"What if we added a loop inside the if or else block? How would the time complexity change?"