A large commit.
[pdp8.git] / sw / src / pascal / QSORT.PS
1 PROCEDURE SORT(L,R: INDEX);
2 VAR I,J: INDEX; X,H: ITEM;
3
4 BEGIN I := L; J := R;
5 X := A[ (L+R) DIV 2 ];
6 REPEAT
7 WHILE A[I]<X DO I := I+1;
8 WHILE X<A[J] DO J := J-1;
9 IF I<=J THEN
10 BEGIN H := A[I]; A[I] := A[J]; A[J] := H;
11 I := I+1; J := J-1
12 END
13 UNTIL I>J;
14 IF L<J THEN SORT(L,J);
15 IF I<R THEN SORT(I,R)
16 END (* SORT *);