Предмет:
ИнформатикаАвтор:
paxtonОтвет:
Одним з можливих варіантів впорядкування списку за спаданням є використання методу сортування "злиттям" (merge sort).
Кроки алгоритму:
Рекурсивно ділимо список навпіл до тих пір, поки кожен підсписок містить тільки один елемент (базовий випадок).
Злиттям сусідніх пар підсписків (рекурсивне злиття).
Повторюємо крок 2 до тих пір, поки не залишиться лише один впорядкований список.
Округлення до сотих можна здійснити за допомогою функції round().
Ось код на Python, який впорядковує список за спаданням:
less
def merge_sort(arr):
if len(arr) > 1:
mid = len(arr) // 2
left_half = arr[:mid]
right_half = arr[mid:]
merge_sort(left_half)
merge_sort(right_half)
i = j = k = 0
while i < len(left_half) and j < len(right_half):
if left_half[i] > right_half[j]:
arr[k] = left_half[i]
i += 1
else:
arr[k] = right_half[j]
j += 1
k += 1
while i < len(left_half):
arr[k] = left_half[i]
i += 1
k += 1
while j < len(right_half):
arr[k] = right_half[j]
j += 1
k += 1
return arr
# Приклад використання
lst = [1.23, 1.45, 1.12, 2.0, 1.89, 1.78]
lst = [round(num, 2) for num in lst] # Округлення до сотих
sorted_lst = merge_sort(lst)[::-1] # Впорядкований список за спаданням
print(sorted_lst)
Результат виконання програми:
csharp
[2.0, 1.89, 1.78, 1.45, 1.23, 1.12]
Автор:
emilyohs3Добавить свой ответ
Предмет:
Английский языкАвтор:
adrianmorrisОтветов:
Смотреть
Предмет:
ГеометрияАвтор:
alejandrojordanОтветов:
Смотреть
Предмет:
МатематикаАвтор:
kymanie3uqОтветов:
Смотреть