Sorting algorithms/Bogosort: Difference between revisions

Content deleted Content added
Rdm (talk | contribs)
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..10] OF INTEGER {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
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 LAST(a) <= 1 THEN
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>