Випадкове сортування

Випадкове сортування (Bogosort) – один з найбільш не ефективних алгоритмів сортування масивів.

Опис алгоритму Bogosort

Алгоритм випадкового сортування полягає в наступному: на початку масив перевіряється на впорядкованість, якщо елементи не відсортовані, то змішуємо їх випадковим чином і знову перевіряємо, операції повторюємо до тих пір, поки масив не буде відсортовано.

Реалізація випадкового сортування

import random

# метод для перевірки впорядкованості елементів
def is_sorted(array):
    length = len(array)
    for i in range(0, length - 1):
        if(array[i] > array[i + 1]):
            return False
    return True

# перемішування масиву
def random_permutation(array):
    length = len(array)
    for i in range(0, length):
        rnd = random.randint(0, length - 1)
        # обмін елементів
        temp = array[i]
        array[i] = array[rnd]
        array[rnd] = temp

# випадкове сортування
def bogo_sort(array):
    while(not(is_sorted(array))):
        random_permutation(array)

print("Випадкове сортування")
arr = []
n = int(input("Введіть довжину масиву: ")) 
for i in range(0, n): 
    element = int(input("arr[" + str(i + 1) + "] = "))   
    arr.append(element)
bogo_sort(arr) 
print("Відсортований масив: ") 
print(arr) 

Результат роботи програми:

Дивіться також: