Випадкове сортування (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)
Результат роботи програми: