• Дано список з n дійсних чисел, згенерованих з проміжку від 1 до 2. Розробіть проєкт, в якому отриманий список впорядковується за спаданням. Дійсні числа округлюються до сотих.Виконати програму у PYTHON ​

Ответы 1

  • Ответ:

    Одним з можливих варіантів впорядкування списку за спаданням є використання методу сортування "злиттям" (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
    • 1 год назад
    • 4
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years