const N = 100; var A : array [1..N] of integer; I, J : integer; procedure QuickSort; procedure QSort(iLo, iHi: Integer); var Lo, Hi, Mid, T: Integer; begin Lo := iLo; Hi := iHi; Mid := A[(Lo + Hi) div 2]; repeat while A[Lo] < Mid do Inc(Lo); while A[Hi] > Mid do Dec(Hi); if Lo <= Hi then begin T := A[Lo]; A[Lo] := A[Hi]; A[Hi] := T; Inc(Lo); Dec(Hi); end; until Lo > Hi; if Hi > iLo then QSort(iLo, Hi); if Lo < iHi then QSort(Lo, iHi); end; begin QSort(1, N); end; begin Randomize; for I := 1 to N do A[I] := random(N); for I := 1 to N do write(A[I],' '); writeln; writeln; QuickSort; for I := 1 to N do write(A[I],' '); end.