Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MODULE Test;
- IMPORT STextIO, SWholeIO, RandomNumber;
- VAR
- a: ARRAY [1..10] OF CARDINAL;
- i: CARDINAL;
- PROCEDURE QSORT(l, r: CARDINAL);
- VAR
- i, j: CARDINAL;
- x, y: CARDINAL;
- BEGIN
- i := l;
- j := r;
- x := a[l + RandomNumber.RandomCard(0, r - l + 1)];
- WHILE i < j DO
- WHILE a[i] < x DO
- i := i + 1;
- END;
- WHILE x < a[j] DO
- j := j - 1;
- END;
- IF i <= j THEN
- y := a[i];
- a[i] := a[j];
- a[j] := y;
- i := i + 1;
- j := j - 1;
- END;
- END;
- IF i < r THEN
- QSORT(i, r);
- END;
- IF l < j THEN
- QSORT(l, j);
- END;
- END QSORT;
- BEGIN
- FOR i := 1 TO 10 DO
- a[i] := RandomNumber.RandomInt(0, 100);
- SWholeIO.WriteCard(a[i], 0);
- STextIO.WriteChar(' ');
- END;
- STextIO.WriteLn;
- QSORT(1, 10);
- FOR i := 1 TO 10 DO
- SWholeIO.WriteCard(a[i], 0);
- STextIO.WriteChar(' ');
- END;
- STextIO.WriteLn;
- END Test.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement