Jump to content

Sorting algorithms/Bogosort: Difference between revisions

Modula-3
(Modula-3)
Line 309:
}
}</java>
 
=={{header|Modula-3}}==
<pre>
MODULE Main;
 
IMPORT IO, Random;
 
VAR a := ARRAY [1..10] OF INTEGER {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 
PROCEDURE Shuffle(VAR a: ARRAY OF INTEGER) =
VAR temp: INTEGER;
BEGIN
WITH rand = NEW(Random.Default).init() DO
FOR i := FIRST(a) TO LAST(a) - 1 DO
WITH j = rand.integer(i, LAST(a)) DO
temp := a[i];
a[i] := a[j];
a[j] := temp;
END;
END;
END;
END Shuffle;
 
PROCEDURE Sorted(VAR a: ARRAY OF INTEGER): BOOLEAN =
BEGIN
IF LAST(a) <= 1 THEN
RETURN TRUE;
END;
FOR i := FIRST(a) + 1 TO LAST(a) DO
IF (a[i] < a[i - 1]) THEN
RETURN FALSE;
END;
END;
RETURN TRUE;
END Sorted;
 
BEGIN
Shuffle(a);
WHILE NOT Sorted(a) DO
Shuffle(a);
END;
FOR i := FIRST(a) TO LAST(a) DO
IO.PutInt(a[i]);
IO.Put(" ");
END;
IO.PutChar('\n');
END Main.
</pre>
 
=={{header|Oberon-2}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.