Popcorn Hack #1
# Constant Time
arr = [1, 2, 3, 4, 5]
print(arr[2])
3
# Linear Time
arr = [1, 2, 3, 4, 5]
for i in range(len(arr)):
if i == 2:
print(arr[i])
break
3
Popcorn Hack #2
arr = [1, 2, 3]
def print_all_pairs(arr):
for i in range(len(arr)):
for j in range(i + 1, len(arr)):
print(f"({arr[i]}, {arr[j]})")
print_all_pairs(arr)
(1, 2)
(1, 3)
(2, 3)
Explaination: It prints all the pairs in the array for i in the range
Popcorn Hack #3
- B. Factorial Time - the time would grow very fast
- C. Quadratic Time
Homework
arr = [5, 10, 15, 20, 25]
def perform_operation(arr, complexity):
if complexity == "constant":
return arr[0] if arr else None
elif complexity == "linear":
for item in arr:
print(item)
elif complexity == "quadratic":
for i in range(len(arr)):
for j in range(len(arr)):
print(f"({arr[i]}, {arr[j]})")
else:
print("Unsupported time complexity")
print("Constant:")
print(perform_operation(arr, "constant"))
print("\nLinear:")
perform_operation(arr, "linear")
print("\nQuadratic:")
perform_operation(arr, "quadratic")
Constant:
5
Linear:
5
10
15
20
25
Quadratic:
(5, 5)
(5, 10)
(5, 15)
(5, 20)
(5, 25)
(10, 5)
(10, 10)
(10, 15)
(10, 20)
(10, 25)
(15, 5)
(15, 10)
(15, 15)
(15, 20)
(15, 25)
(20, 5)
(20, 10)
(20, 15)
(20, 20)
(20, 25)
(25, 5)
(25, 10)
(25, 15)
(25, 20)
(25, 25)