File: QSORT.PS of Tape: Various/Decus/decus-3
(Source file text)
PROCEDURE SORT(L,R: INDEX); VAR I,J: INDEX; X,H: ITEM; BEGIN I := L; J := R; X := A[ (L+R) DIV 2 ]; REPEAT WHILE A[I]<X DO I := I+1; WHILE X<A[J] DO J := J-1; IF I<=J THEN BEGIN H := A[I]; A[I] := A[J]; A[J] := H; I := I+1; J := J-1 END UNTIL I>J; IF L<J THEN SORT(L,J); IF I<R THEN SORT(I,R) END (* SORT *);