Skip to the content.

Big O Notation

Popcorn Hacks and Homework Hacks

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)