кодесурса
«Python

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

script1adsense2code
script1adsense3code

Поиск и сортировка 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code