В електронному додатку на платформі iЗЗі вже доступний гайд із корисними функціями Canva, які допоможуть вам швидко та ефективно оформлювати навчальний контент.
Складання і виконання алгоритму упорядкування та пошуку значень у масиві
Задача:
Уявіть, що ви – організатор шкільних спортивних змагань. Вам потрібно обробити результати забігу на 100 метрів. Результати представлені у вигляді списку, де кожен елемент – це час, за який учасник пробіг дистанцію.
Напишіть програму, яка:
Приймає на вхід список результатів забігу (час у секундах).
Сортує цей список у порядку зростання (від найменшого часу до найбільшого).
Виводить відсортований список.
Запитує у користувача час для пошуку.
Використовує алгоритм бінарного пошуку для пошуку заданого часу у відсортованому списку.
Виводить повідомлення про те, чи знайдено заданий час, і якщо так, то на якій позиції (індексі) у списку.
Приклад вхідних даних:
results = [12.5, 13.2, 11.8, 14.1, 12.9]
Приклад вихідних даних:
Відсортований список: [11.8, 12.5, 12.9, 13.2, 14.1]
Введіть час для пошуку: 12.9
Час 12.9 знайдено на позиції 2
Програма на Python:
Python
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
def main():
results = [12.5, 13.2, 11.8, 14.1, 12.9]
results.sort()
print("Відсортований список:", results)
search_time = float(input("Введіть час для пошуку: "))
index = binary_search(results, search_time)
if index != -1:
print(f"Час {search_time} знайдено на позиції {index}")
else:
print(f"Час {search_time} не знайдено")
if __name__ == "__main__":
main()
Інструкція для перевірки в Google Colab:
Відкрийте Google Colab.
Скопіюйте код програми в комірку коду.
Натисніть кнопку "Виконати" (значок відтворення) або натисніть Shift + Enter.
Введіть час для пошуку, коли програма запитає.
Перевірте, чи відповідає вивід програми очікуваним результатам.
Додаткові завдання (для тих, хто хоче ускладнити):
Додайте обробку помилок, щоб програма коректно обробляла некоректні вхідні дані (наприклад, введення нечислових значень).
Реалізуйте інший алгоритм сортування (наприклад, сортування вставками або бульбашкове сортування).
Додайте можливість пошуку не лише одного часу, а й діапазону часів.