Сортування обміном (метод бульбашки)
За навчальною програмою 2017 року
Урок 53
Інформатика 9
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.
Сортування обміном (метод бульбашки)
Метод бульбашки — це метод упорядкування списку шляхом послідовного порівняння й обміну сусідніх елементів, якщо попередній елемент виявляється більшим за наступний.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Сортування обміном (метод бульбашки)
У процесі виконання цього алгоритму елементи з великими значеннями опиняються в кінці списку, а елементи з меншими значеннями поступово переміщуються у напрямку до початку списку. Образно кажучи, важкі елементи падають на дно, а легкі повільно спливають подібно до бульбашок повітря.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Сортування обміном (метод бульбашки)
Змінна prap типу bool виконує роль прапорця.
Вона отримує значення True в тому випадку, якщо відбулася хоча б одна перестановка сусідніх елементів
Якщо значення рrap не змінилось, це означає, що елементи списку вже впорядковані й подальший перегляд списку не потрібний
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Сортування обміном (метод бульбашки)
Реалізуємо алгоритм у вигляді функції.
def sort_bulb():
prap = True
k = len(arr)-1
while prap:
prap = False
for i in range(k):
if arr[i]>arr[i+1]:
arr[i], arr[i+1] = arr[i+1], arr[i]
prap = True
k = k-1
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Сортування обміном (метод бульбашки)
ПРИКЛАД 2. Проаналізуємо виконання алгоритму на прикладі списку arr = [5, 10, 1, 4, 6].
Перша ітерація зовнішнього циклу, k = 4
arr = [5, 1, 4, 6, 10]
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Сортування обміном (метод бульбашки)
Продовження…
Друга ітерація зовнішнього циклу, k = 3
arr = [1, 4, 5, 6, 10]
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Сортування обміном (метод бульбашки)
(Продовження…) Третя ітерація зовнішнього циклу, k = 2
arr = [1, 4, 5, 6, 10]
Уже на третій ітерації елементи виявились упорядкованими за зростанням, змінна prap = False, тому зовнішній цикл припиняє роботу. Для різних наборів значень списку може знадобитися різна кількість кроків сортування.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Питання для самоперевірки
s = s+int(a[i] >= a[i+1])
Початкове значення s дорівнює 0. Визначте, чому дорівнює кінцеве значення s, якщо список:
а) було впорядковано за зростанням;
б) було впорядковано за спаданням;
в) не було впорядковано.
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Розгадайте ребус
Бульбашка
«Ребуси українською» © rebus1.com
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Домашнє завдання
Проаналізувати
§ 32, с. 189-192
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Працюємо за комп’ютером
Сторінка
191-192
© Вивчаємо інформатику teach-inf.com.ua
Розділ 5
§ 32
Дякую за увагу!
За навчальною програмою 2017 року
Урок 53
Інформатика 9
teach-inf.com.ua
за підручником
Бондаренко О.О. та ін.