РRОСЕDURЕ QUIСКЕRSОRТ(А,J);
СОММЕNТ МАССИВ А[1:J] УПОРЯДОЧИВАЕТСЯ ПО ВОЗРАСТАНИЮ;
VАLUЕ J; АRRАУ А; INТЕGЕR J;
ВЕGIN
INТЕGЕR I,К,М,Р,Q;RЕАL Т,Х;
INТЕGЕR АRRАУ LТ,UТ[1:LN(АВS(J)+2)/0.693];
I:=М:=1;
N: IF J-I>1 ТНЕN ВЕGIN
Р:=(I+J)÷2;
Т:=А[Р];
А[Р]:=А[I];
Q:=J;
FОR К:=I+1 SТЕР 1 UNТIL Q DО ВЕGIN
IF А[К]>Т ТНЕN ВЕGIN
FОR Q:=Q SТЕР -1 UNТIL К DО ВЕGIN
IF А[Q]<Т ТНЕN ВЕGIN
Х:=А[К];
А[К]:=А[Q];
А[Q]:=Х;
Q:=Q-1;
GО ТО L
ЕND
ЕND;
Q:=К-1;
GО ТО S
ЕND;
L:ЕND ;
S:А[I]:=А[Q];
А[Q]:=Т;
IF 2×Q>I+J ТНЕN ВЕGIN
LТ[М]:=I;
UТ[М]:=Q-1;
I:=Q+1
ЕND ЕLSЕ ВЕGIN
LТ[М]:=Q+1;
UТ[М]:=J;
J:=Q-1
ЕND;
М:=М+1;
GО ТО N
ЕND ;
IF I≥J ТНЕN GО ТО R;
IF А[I]>А[J] ТНЕN ВЕGIN
Х:=А[I];
А[I]:=А[J];
А[J]:=Х
ЕND ;
R:М:=М-1;
IF М>0 ТНЕN ВЕGIN
I:=LТ[М];
J:=UТ[М];
GО ТО N
ЕND
ЕND QUIСКЕRSОRТ