Конструктор уроків
1
Складність алгоритму – це оцінка того, скільки ресурсів (часу або пам’яті) потрібно для його виконання залежно від розміру вхідних даних.
📌 Часова складність – скільки операцій виконується залежно від розміру вхідних даних (n).
📌 Просторова складність – скільки пам’яті споживає алгоритм.
2
Оцінює, як швидко збільшується кількість операцій при зростанні n.
🔹 O(1) – алгоритм працює за сталий час (наприклад, доступ до елемента списку).
🔹 O(log n) – логарифмічний ріст (наприклад, бінарний пошук).
🔹 O(n) – лінійна складність (наприклад, простий перебір списку).
🔹 O(n²) – квадратична складність (наприклад, подвійний цикл).
🔹 O(2ⁿ) – експоненційна складність (дуже повільний алгоритм).
3
📌 Перевіримо, як змінюється час виконання алгоритму залежно від розміру даних.
🔎 Аналізуємо результат:
✅ Якщо список містить 10 елементів – швидко.
✅ Якщо список містить 1 000 000 елементів – значно довше.
✅ Це показує, що алгоритм O(n) працює повільніше на великих наборах даних.
4
📌 Порівняємо "бульбашкове сортування" (O(n²)) і вбудовану функцію Python (O(n log n)).
Пояснення роботи коду:
1️⃣ Генеруємо список із 500 випадкових чисел.
2️⃣ Сортуємо його двома різними способами:
Бульбашковим сортуванням (повільний метод O(n²))
Вбудованим методом Python (ефективний O(n log n))
3️⃣ Порівнюємо час виконання обох алгоритмів.
💡 Очікуваний результат:
🔹 Бульбашкове сортування набагато повільніше, особливо якщо збільшити розмір списку.
🔹 Сортування Python працює швидко навіть для великих масивів.
5
📌 Використаємо бінарний пошук (O(log n)), який значно швидший за лінійний (O(n)).
Завдання 3: Порівняння лінійного та бінарного пошуку
📌 Мета:
Перевірити, який пошук працює швидше: лінійний (O(n)) чи бінарний (O(log n)).
Зрозуміти, що бінарний пошук можна застосовувати лише на відсортованих масивах.
Пояснення роботи коду:
1️⃣ Лінійний пошук (O(n)) проходить кожен елемент списку поки не знайде потрібний.
2️⃣ Бінарний пошук (O(log n)) працює набагато швидше:
Ділить список навпіл і перевіряє середній елемент.
Якщо число більше – шукає в правій половині.
Якщо число менше – шукає в лівій половині.
3️⃣ Результати показують, що бінарний пошук в сотні разів швидший за лінійний!
6
⏳ Лінійний пошук (O(n)) – значно довший, особливо на великих масивах.
⚡ Бінарний пошук (O(log n)) – миттєвий результат, навіть при 1 000 000 елементах.
7
Домашнє завдання
1️⃣ Модифікуйте програму:
Додайте новий алгоритм сортування (наприклад, "вставками").
2️⃣ Напишіть власний алгоритм з O(1) (наприклад, отримання елемента за індексом).
🚀 Чим краще алгоритм – тим швидше працює програма! Вчимося вибирати ефективні рішення! 😉
Рефлексія від 0 учнів
Сподобався:
Так: 0
Ні: 0
Зрозумілий:
Так: 0
Ні: 0
Потрібні роз'яснення:
Ні: 0
Так: 0
Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.