Sorting algorithms/Bogosort: Difference between revisions
Content deleted Content added
m {{eff note|J|/:~}} |
|||
Line 760: | Line 760: | ||
<lang modula3>MODULE Bogo EXPORTS Main; |
<lang modula3>MODULE Bogo EXPORTS Main; |
||
IMPORT IO, Random; |
IMPORT IO, Fmt, Random; |
||
VAR a := ARRAY [1.. |
VAR a := ARRAY [1..5] OF INTEGER {1, 2, 3, 4, 5}; |
||
count := 0; |
|||
PROCEDURE Shuffle(VAR a: ARRAY OF INTEGER) = |
PROCEDURE Shuffle(VAR a: ARRAY OF INTEGER) = |
||
Line 780: | Line 781: | ||
PROCEDURE Sorted(VAR a: ARRAY OF INTEGER): BOOLEAN = |
PROCEDURE Sorted(VAR a: ARRAY OF INTEGER): BOOLEAN = |
||
BEGIN |
BEGIN |
||
IF |
IF NUMBER(a) <= 1 THEN |
||
RETURN TRUE; |
RETURN TRUE; |
||
END; |
END; |
||
Line 795: | Line 796: | ||
WHILE NOT Sorted(a) DO |
WHILE NOT Sorted(a) DO |
||
Shuffle(a); |
Shuffle(a); |
||
INC(count); |
|||
END; |
END; |
||
FOR i := FIRST(a) TO LAST(a) DO |
FOR i := FIRST(a) TO LAST(a) DO |
||
Line 800: | Line 802: | ||
IO.Put(" "); |
IO.Put(" "); |
||
END; |
END; |
||
IO.Put("\nRequired " & Fmt.Int(count) & " shuffles\n"); |
|||
IO.PutChar('\n'); |
|||
END Bogo.</lang> |
END Bogo.</lang> |
||