Təsadüfi nizamlama

Təsadüfi nizamlama və ya Axmaq nizamlama - kompüter elmlərində yalnız təhsil(nümunə) məqsədilə istifadə olunan səmərəsiz nizamlama alqoritmidir.

Bir dəstə oyun kartını bu alqortim ilə nizamlamaq istəndiyində, dəstənin sıralı olub olmadığına baxılar, əgər dəstə sıralı deyilsə havaya atılaraq yerə düşən kartlar yenidən toplanır. Bu əməliyyat kartlar sıralanana qədər davam edir.

 Pascal dilində təsviri 

program bogosort;

const
  max = 5;
type
  list = array [1..max] of integer;

{ Print a list }
procedure printa(a: list);
var
  i: integer;
begin
  for i := 1 to max do
    write(a[i], ' ');
  writeln
end;

{ Knuth shuffle }
procedure shuffle(var a: list);
var
  i,k,tmp: integer;
begin
  for i := max downto 2 do begin
     k := random(i) + 1;
     if (a[i] <> a[k]) then begin
       tmp := a[i]; a[i] := a[k]; a[k] := tmp
     end
  end
end;

{ Check for sorted list }
function sorted(a: list): boolean;
var
  i: integer;
begin
  sorted := True;
  for i := 2 to max do
    if (a[i - 1] > a[i]) then begin
      sorted := False; exit
    end
end;

{ Bogosort }
procedure bogo(var a: list);
var
  i: integer;
begin
  i := 1; randomize;
  write(i,': '); printa(a);
  while not sorted(a) do begin
    shuffle(a);
    i := i + 1; write(i,': '); printa(a)
  end
end;

{ Test and display }
var
  a: list;
  i: integer;

begin
  for i := 1 to max do
    a[i] := (max + 1) - i;
  bogo(a);
end.

Sample Output:
1: 5 4 3 2 1
2: 3 5 4 1 2
. . . . . .
22: 3 2 1 5 4
23: 1 2 3 4 5</pre>

 Java dilində təsviri 
public int[] BogoSort(int[] numbers)
{
    Random rnd = new Random();
    while(true)
    {
        boolean sorted = true;
        for(int i = 0; i < numbers.length-1; i++)
            if(numbers[i] > numbers[i+1])
                sorted = false;
        if (sorted)
            return numbers;
        for(int i = numbers.length - 1; i > 0; i--)
        {
            int rand = rnd.nextInt(i);
            int temp = numbers[i];
            numbers[i] = numbers[rand];
            numbers[rand] = temp;
        }
    }
}

 Xarici Keçidlər 
Digər Proqramlaşdırma dillərində təsviri
 Həmçinin bax 
 nizamlama alqoritmi

Kateqoriya:Proqramlaşdırma
Kateqoriya:Nizamlama alqoritmləri