Структуры и алгоритмы данных Python: сортировка списка элементов с использованием сортировки Bogosort
Поиск и сортировка Python: упражнение-12 с решением
Напишите программу на Python для сортировки списка элементов, используя сортировку Bogosort.
В информатике Bogosort - это особенно неэффективный алгоритм сортировки, основанный на парадигме генерации и тестирования. Алгоритм последовательно генерирует перестановки своего ввода, пока не найдет отсортированный. Это не полезно для сортировки, но может использоваться в образовательных целях, чтобы противопоставить его другим более реалистичным алгоритмам. Существуют две версии алгоритма: детерминированная версия, которая перечисляет все перестановки, пока не достигнет отсортированной, и рандомизированная версия, которая случайным образом переставляет свои входные данные. Аналогия для работы последней версии заключается в сортировке колоды карт, подбрасывая колоду в воздух, подбирая карты случайным образом и повторяя процесс, пока колода не отсортирована. Его название происходит от слова фиктивный.
Пример решения :
Код Python:
import random
def bogosort(nums):
def isSorted(nums):
if len(nums) < 2:
return True
for i in range(len(nums) - 1):
if nums[i] > nums[i + 1]:
return False
return True
while not isSorted(nums):
random.shuffle(nums)
return nums
num1 = input('Input comma separated numbers:\n').strip()
nums = [int(item) for item in num1.split(',')]
print(bogosort(nums))
Пример вывода:
Введите числа через запятую: 15, 25, 37, 65, 75, 12, 89 [12, 15, 25, 37, 65, 75, 89]
Блок - схема:
Редактор кода Python:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите код Python для создания программы для Битонической сортировки.
Далее: Напишите программу на Python для сортировки списка элементов с использованием сортировки Gnome.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования