кодесурса
«Python

Структуры и алгоритмы данных Python: сортировка списка элементов с использованием сортировки по массе

script1adsense2code
script1adsense3code

Поиск и сортировка Python: упражнение 18 с решением

Напишите программу на Python для сортировки списка элементов, используя сортировку Pancake.
Сортировка блинов - разговорный термин для математической задачи сортировки неупорядоченной стопки блинов в порядке их размера, когда шпатель может быть вставлен в любую точку стопки и использован для переворачивания всех блинов над ней. Число блинов - это минимальное количество бросков, необходимое для данного количества блинов. Впервые эту проблему обсудил американский геометр Джейкоб Э. Гудман. Это разновидность проблемы сортировки, в которой единственной допустимой операцией является обращение элементов некоторого префикса последовательности в обратном порядке.

Пример решения :

Код Python:

def pancake_sort(nums):
    arr_len = len(nums)
    while arr_len > 1:
        mi = nums.index(max(nums[0:arr_len]))
        nums = nums[mi::-1] + nums[mi+1:len(nums)]
        nums = nums[arr_len-1::-1] + nums[arr_len:len(nums)]
        arr_len -= 1
    return nums
user_input = input("Input numbers separated by a comma:\n").strip()
nums = [int(item) for item in user_input.split(',')]
print(pancake_sort(nums))

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

 Введите числа, разделенные запятой:
 15, 79, 25, 38, 69
[15, 25, 38, 69, 79]

Блок - схема:

«Блок-схема:

Редактор кода Python:

Внесите свой код и комментарии через Disqus.

Предыдущий: Напишите программу на Python для сортировки списка элементов, используя сортировку Heap.
Далее: Напишите программу на Python для сортировки списка элементов с использованием сортировки Radix.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code