Написать программу с массивом и отсортировать его тремя разными способами:1. Сортировка методом прямого выбора.2. Сортировка прямым обменом (методом «пузырька»)3. Сортировка вставками.

1 Июн 2019 в 19:48
250 +1
0
Ответы
1
# Сортировка методом прямого выбора
def selection_sort(arr):
for i in range(len(arr)):
min_idx = i
for j in range(i+1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
# Сортировка прямым обменом (методом «пузырька»)
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
# Сортировка вставками
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i-1
while j >= 0 and key < arr[j]:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
return arr
# Исходный массив
arr = [64, 25, 12, 22, 11]
# Сортировка методом прямого выбора
sorted_arr_selection = selection_sort(arr)<br>print("Отсортированный массив методом прямого выбора", sorted_arr_selection)<br># Сортировка прямым обменом (методом «пузырька»)<br>sorted_arr_bubble = bubble_sort(arr)
print("Отсортированный массив методом 'пузырька':", sorted_arr_bubble)
# Сортировка вставками
sorted_arr_insertion = insertion_sort(arr[:])
print("Отсортированный массив методом вставками:", sorted_arr_insertion)

Пример вывода:

Отсортированный массив методом прямого выбора: [11, 12, 22, 25, 64]
Отсортированный массив методом 'пузырька': [11, 12, 22, 25, 64]
Отсортированный массив методом вставками: [11, 12, 22, 25, 64]
21 Апр в 01:54
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 93 003 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир