Skip to the content.

BigO

HW

def get_first_element(arr):
    return arr[0]

print("O(1):", get_first_element([10, 20, 30, 40])) 
O(1): 10
def binary_search(arr, target):
    low = 0
    high = len(arr) - 1
    
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:
            return True
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1
    return False

print("O(log n):", binary_search([1, 3, 5, 7, 9, 11], 7))   
print("O(log n):", binary_search([1, 3, 5, 7, 9, 11], 8))   
O(log n): True
O(log n): False
def find_max(arr):
    max_val = arr[0]
    for num in arr:
        if num > max_val:
            max_val = num
    return max_val

print("O(n):", find_max([2, 8, 5, 1, 10, 3]))  

O(n): 10
def count_duplicates(arr):
    count = 0
    for i in range(len(arr)):
        for j in range(i + 1, len(arr)):
            if arr[i] == arr[j]:
                count += 1
    return count

print("O(n²):", count_duplicates([1, 2, 3, 2, 1, 4, 1]))  

O(n²): 4