Global scope in Python - Time & Space Complexity
We want to see how using variables in the global scope affects how long a program takes to run.
Does accessing or changing global variables slow down the program as it gets bigger?
Analyze the time complexity of the following code snippet.
count = 0 # global variable
def increment(n):
global count
for i in range(n):
count += 1
return count
result = increment(5)
This code increases a global number by 1, n times, then returns the total.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The for-loop that runs n times.
- How many times: Exactly n times, where n is the input number.
Each time n grows, the loop runs more times, increasing work linearly.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 increments |
| 100 | 100 increments |
| 1000 | 1000 increments |
Pattern observation: The work grows directly with n; double n means double work.
Time Complexity: O(n)
This means the time to finish grows in a straight line with the input size.
[X] Wrong: "Using a global variable makes the program slower because it's harder to access."
[OK] Correct: Accessing or changing a global variable takes about the same time as a local one in this simple case, so it doesn't add extra time as input grows.
Understanding how global variables affect performance helps you write clear and efficient code, a skill valued in many coding challenges and real projects.
"What if we replaced the global variable with a local variable inside the function? How would the time complexity change?"