Випадкове сортування (Bogosort) – один з найбільш не ефективних алгоритмів сортування масивів.
Опис алгоритму Bogosort
Алгоритм випадкового сортування полягає в наступному: на початку масив перевіряється на впорядкованість, якщо елементи не відсортовані, то змішуємо їх випадковим чином і знову перевіряємо, операції повторюємо до тих пір, поки масив не буде відсортовано.
Реалізація випадкового сортування
using System;
class Program
{
//метод для перевірки впорядкованості масиву
static bool IsSorted(int[] a)
{
for (int i = 0; i < a.Length - 1; i++)
{
if (a[i] > a[i + 1])
return false;
}
return true;
}
//перемішування елементів масиву
static int[] RandomPermutation(int[] a)
{
Random random = new Random();
var n = a.Length;
while (n > 1)
{
n--;
var i = random.Next(n + 1);
var temp = a[i];
a[i] = a[n];
a[n] = temp;
}
return a;
}
//випадкове сортування
static int[] BogoSort(int[] a)
{
while(!IsSorted(a))
{
a = RandomPermutation(a);
}
return a;
}
static void Main(string[] args)
{
Console.WriteLine("Випадкове сортування");
Console.Write("Введіть елементи масиву: ");
var parts = Console.ReadLine().Split(new[] { " ", ",", ";" }, StringSplitOptions.RemoveEmptyEntries);
var array = new int[parts.Length];
for (int i = 0; i < parts.Length;i++)
{
array[i] = Convert.ToInt32(parts[i]);
}
Console.WriteLine("Відсортований масив: {0}", string.Join(", ", BogoSort(array)));
Console.ReadLine();
}
}
Результат роботи програми: