Зміна порядку елементів масиву є поширеною операцією в програмуванні. Існує кілька способів зробити це, залежно від того, який саме порядок вам потрібен (наприклад, обернений, випадковий, за певним критерієм).
Цей метод змінює порядок елементів на протилежний.
numbers = [1, 2, 3, 4]
numbers.reverse()
print(numbers) # [4, 3, 2, 1]
Цей метод змінює порядок елементів на протилежний.
numbers = [1, 2, 3, 4]
reversed_numbers = list(reversed(numbers))
print(reversed_numbers) # [4, 3, 2, 1]
У світі Computer Science одним з перших алгоритмів сортування, з яким знайомляться студенти, є сортування бульбашкою. Його популярність на початковому етапі навчання зумовлена надзвичайною простотою демонстрації самої ідеї сортування. Алгоритм передбачає прохід по списку елементів і попарне порівняння сусідів. У випадку виявлення неправильного порядку, сусідні елементи міняються місцями. Ця процедура повторюється до тих пір, доки весь список не буде впорядковано.
import random
# Створюємо випадковий масив
S=[]
for i in range(10):
f=random.randint(-100, 100)
S.append(f)
print("Початковий масив:", S)
# Метод бульбашки
for i in range(len(S)):
for j in range(0, len(S) - i - 1):
if S[j] > S[j + 1]:
# Обмін елементів
S[j], S[j + 1] = S[j + 1], S[j]
print("Відсортований масив:", S)
1. import random
Цей рядок імпортує вбудований модуль random в Python. Цей модуль надає функції для генерації випадкових чисел.
2. S = []
Тут створюється порожній список під назвою S. Цей список буде використовуватися для зберігання випадкових чисел.
3. for i in range(10):
Це початок циклу for, який виконається 10 разів (значення i будуть від 0 до 9).
4. f = random.randint(-100, 100)
Усередині циклу на кожній ітерації генерується випадкове ціле число в діапазоні від -100 до 100 включно за допомогою функції random.randint(-100, 100). Згенероване число присвоюється змінній f.
5. S.append(f)
Метод append() додає значення змінної f до кінця списку S. Таким чином, після завершення циклу S буде містити 10 випадкових цілих чисел.
6. print("Початковий масив:", S)
Цей рядок виводить на екран початковий, невідсортований масив S.
7. for i in range(len(S)):
Це зовнішній цикл алгоритму бульбашки. Він ітерується по масиву len(S) разів (де len(S) - кількість елементів у масиві). З кожною повною ітерацією зовнішнього циклу найбільший невідсортований елемент "спливає" в кінець невідсортованої частини масиву.
8. for j in range(0, len(S) - i - 1): - Це внутрішній цикл. На кожній ітерації зовнішнього циклу він проходить по невідсортованій частині масиву. - len(S) - i - 1: З кожною ітерацією зовнішнього циклу i збільшується, тому кількість порівнянь у внутрішньому циклі зменшується на одиницю, оскільки останні i елементів вже відсортовані і знаходяться на своїх правильних місцях.
9. if S[j] > S[j + 1]: - Це умова, яка порівнює два сусідні елементи масиву: елемент з індексом j та елемент з індексом j + 1.
10. S[j], S[j + 1] = S[j + 1], S[j] - Якщо умова в рядку 11 є істинною (тобто, якщо поточний елемент S[j] більший за наступний елемент S[j + 1]), то ці два елементи міняються місцями. Це класичний спосіб обміну значеннями двох змінних в Python без використання додаткової тимчасової змінної.
11. print("Відсортований масив:", S) - Після завершення обох циклів (зовнішнього та внутрішнього), масив S буде відсортований у порядку зростання. Цей рядок виводить на екран відсортований масив.
Підсумок роботи програми:
Програма створює масив S з 10 випадкових цілих чисел у діапазоні від -100 до 100.
Виводить на екран початковий, невідсортований масив.
Застосовує алгоритм сортування бульбашкою для впорядкування елементів масиву S за зростанням.
Виводить на екран відсортований масив.
Метод бульбашки працює шляхом багаторазового проходу по масиву, порівнюючи сусідні елементи та міняючи їх місцями, якщо вони знаходяться в неправильному порядку. Більші елементи поступово "спливають" у кінець масиву, подібно до бульбашок у воді, звідки й походить назва алгоритму.