#stworzyć listę i wypełnić ją 20 liczbami od 1 do 100
#random.randint()
# import random 

# liczby = []
# for i in range (20):
#     liczby.append(random.randint(1,100))
# print(liczby)

# osoba = {"imie":'Kamil',"wiek":20,"adres":{"ulica":"kwiatowa",}   }

# print(osoba["imie"])
# del osoba['wiek']

# for klucz, wartosc in osoba.items():
#     print(f'{klucz}; {wartosc}')

# for i in range(len(liczby)):
#     print(liczby[i])


liczby = [9,4,5,2,1,5,6,3,20,12,34,-5]

def bubble_sort(arr):
    n = len(arr)
    #iterujemy przez wszystkich elementach listy (iterujemy = przechodzimy)
    for i in range(n):
        #ostatnie i elementów nie trzeba sprawdzaź bo są już na 100% dobrze
        for j in range(0,  n-i-1):
            if arr[j] > arr[j+1]:
                #zamienieamy miejscami jeżeli kolejność jest nieprawidłowa
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

# print(bubble_sort(liczby))

def linear_search(arr,x):
    n = len(arr )
    for i in range(n):
        if arr[i] == x:
            return i 
    return None

# print(linear_search(liczby,34))

def binary_search(arr,x):
    low = 0
    high = len(arr) - 1
    mid = 0

    while low <= high:

        mid = (high+low) // 2 
        if arr[mid] < x:
            low = mid +1
        elif arr[mid] > x:
            high = mid - 1
        else:
            return mid
    return None

posortowana_liczba = bubble_sort(liczby)

print(binary_search(posortowana_liczba, 34 ))




