Logical operators (-and, -or, -not) in PowerShell - Time & Space Complexity
We want to see how the time it takes to run logical operations changes as we use more conditions.
How does adding more checks affect the total work done?
Analyze the time complexity of the following code snippet.
$values = 1..100
foreach ($value in $values) {
if ((($value -gt 10) -and ($value -lt 50)) -or (-not ($value -eq 30))) {
Write-Output $value
}
}
This code checks each number from 1 to 100 with logical operators to decide if it should print the number.
- Primary operation: Looping through each number in the list.
- How many times: Once for every number in the list (100 times here).
Each number is checked once with a few logical conditions, so work grows directly with the number of items.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 checks |
| 100 | About 100 checks |
| 1000 | About 1000 checks |
Pattern observation: The total work grows evenly as the list gets bigger.
Time Complexity: O(n)
This means the time to run the code grows in a straight line with the number of items checked.
[X] Wrong: "Logical operators make the code run much slower because they add extra steps inside the loop."
[OK] Correct: Logical checks inside the loop add only a small fixed amount of work per item, so the overall growth still depends mainly on how many items we check.
Understanding how logical checks affect performance helps you write clear and efficient scripts, a skill valued in many real-world tasks.
"What if we added a nested loop inside the if statement? How would the time complexity change?"