Advertisement
ada1711

Untitled

Apr 26th, 2023
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  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.  
  65. # lista kontaktów
  66. kontakty = []
  67.  
  68. # pętla programu
  69. while True:
  70. print("1. Dodaj nowy kontakt")
  71. print("2. Wyświetl listę kontaktów")
  72. print("3. Wyjdź z programu")
  73. wybor = input("Wybierz opcję: ")
  74.  
  75. # dodawanie nowego kontaktu
  76. if wybor == "1":
  77. imie = input("Podaj imię: ")
  78. nazwisko = input("Podaj nazwisko: ")
  79. numer = input("Podaj numer telefonu: ")
  80. kontakt = {"imie": imie, "nazwisko": nazwisko, "numer": numer}
  81. kontakty.append(kontakt)
  82. bubble_sort(kontakty)
  83. print("Kontakt został dodany.")
  84.  
  85. # wyświetlanie listy kontaktów
  86. elif wybor == "2":
  87. if len(kontakty) == 0:
  88. print("Brak kontaktów.")
  89. else:
  90. print("Lista kontaktów:")
  91. for kontakt in kontakty:
  92. print(f"{kontakt['nazwisko']} {kontakt['imie']} - {kontakt['numer']}")
  93.  
  94. # wyjście z programu
  95. elif wybor == "3":
  96. break
  97.  
  98. # błąd - nieznana opcja
  99. else:
  100. print("Nieznana opcja.")
  101.  
  102. #========================================================
  103.  
  104. import random
  105.  
  106. def binary_search(low, high, guess):
  107. mid = (low + high) // 2
  108. print("Czy to jest liczba", guess, "?")
  109. response = input("Podaj odpowiedź (za mało/za dużo/tak): ")
  110. if response == "za mało":
  111. return binary_search(mid + 1, high, (mid + 1 + high) // 2)
  112. elif response == "za dużo":
  113. return binary_search(low, mid - 1, (low + mid - 1) // 2)
  114. else:
  115. return guess
  116.  
  117. # losujemy liczbę z zakresu 1-100
  118. number = random.randint(1, 100)
  119. print("Wylosowana liczba to", number)
  120.  
  121. # komputer zgaduje
  122. guess = 50
  123. result = binary_search(1, 100, guess)
  124. print("Zgadłem! Wylosowana liczba to", result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement