View difference between Paste ID: nUiHE9nj and ViYD4g46
SHOW: | | - or go back to the newest paste.
1
import random 
2
my_list = []
3
4
for i in range(20):
5
    value = random.randint(1, 100)
6
    my_list.append(value)
7
8
# [10, 5, 8, 3, 15, 12, 17, 4, 9, 6, 19, 2, 7, 14, 16, 18, 20, 13, 11, 1]
9
10
#========================================================
11
12
def bubble_sort(arr):
13
    n = len(arr)
14
    # iterujemy przez wszystkie elementy listy
15
    for i in range(n):
16
        # ostatnie i elementów są już posortowane
17
        for j in range(0, n-i-1):
18
            # porównujemy sąsiednie elementy
19
            if arr[j] > arr[j+1]:
20
                # zamieniamy miejscami, jeśli kolejność jest nieprawidłowa
21
                arr[j], arr[j+1] = arr[j+1], arr[j]
22
    return arr
23
24
#========================================================
25
26
def linear_search(arr, x):
27
    n = len(arr)
28
    for i in range(n):
29
        if arr[i] == x:
30
            return i
31
    return -1
32
33
#========================================================
34
35
def binary_search(arr, x):
36
    low = 0
37
    high = len(arr) - 1
38
    mid = 0
39
40
    while low <= high:
41
42
        mid = (high + low) // 2
43
44
        if arr[mid] < x:
45
            low = mid + 1
46
47
        elif arr[mid] > x:
48
            high = mid - 1
49
50
        else:
51
            return mid
52
53
    return -1
54
55
#========================================================
56
57
# funkcja sortująca bubble sort
58
def bubble_sort(arr):
59
    n = len(arr)
60
    for i in range(n):
61
        for j in range(0, n-i-1):
62
            if arr[j]["nazwisko"] > arr[j+1]["nazwisko"]:
63
                arr[j], arr[j+1] = arr[j+1], arr[j]
64
    return arr
65
66
# lista kontaktów
67
kontakty = []
68
69
# pętla programu
70
while True:
71
    print("1. Dodaj nowy kontakt")
72
    print("2. Wyświetl listę kontaktów")
73
    print("3. Wyjdź z programu")
74
    wybor = input("Wybierz opcję: ")
75
76
    # dodawanie nowego kontaktu
77
    if wybor == "1":
78
        imie = input("Podaj imię: ")
79
        nazwisko = input("Podaj nazwisko: ")
80
        numer = input("Podaj numer telefonu: ")
81
        kontakt = {"imie": imie, "nazwisko": nazwisko, "numer": numer}
82
        kontakty.append(kontakt)
83
        kontakty = bubble_sort(kontakty)
84
        print("Kontakt został dodany.")
85
86
    # wyświetlanie listy kontaktów
87
    elif wybor == "2":
88
        if len(kontakty) == 0:
89
            print("Brak kontaktów.")
90
        else:
91
            print("Lista kontaktów:")
92
            for kontakt in kontakty:
93
                print(f"{kontakt['nazwisko']} {kontakt['imie']} - {kontakt['numer']}")
94
95
    # wyjście z programu
96
    elif wybor == "3":
97
        break
98
99
    # błąd - nieznana opcja
100
    else:
101
        print("Nieznana opcja.")
102
103
#========================================================
104
105
import random
106
107
def binary_search(low, high, guess):
108
    mid = (low + high) // 2
109
    print("Czy to jest liczba", guess, "?")
110
    response = input("Podaj odpowiedź (za mało/za dużo/tak): ")
111
    if response == "za mało":
112
        return binary_search(mid + 1, high, (mid + 1 + high) // 2)
113
    elif response == "za dużo":
114
        return binary_search(low, mid - 1, (low + mid - 1) // 2)
115
    else:
116
        return guess
117
118
# losujemy liczbę z zakresu 1-100
119
number = random.randint(1, 100)
120
print("Wylosowana liczba to", number)
121
122
# komputer zgaduje
123
guess = 50
124
result = binary_search(1, 100, guess)
125
print("Zgadłem! Wylosowana liczba to", result)