سلام

این الگوریتم Quick Sort است. کسی میتونه توضیح بده چه شکلی کار میکنه؟
PROCEDURE Quick;
PROCEDURE PartialSort(Left,Right:WORD);
VAR
L1,R1,I,J,K:WORD;
BEGIN
K:=(A[Left]+A[Right]&#41 ; DIV 2;
I:=Left;
J:=Right;

REPEAT
WHILE A[I]<K DO
Inc(I,1);

WHILE K<A[J] DO
Dec(J,1);

IF I<=J THEN
BEGIN
Switch(A[I],A[J]);
Inc(I,1);
Dec(J,1);
END;
UNTIL I>J;

IF Left<J THEN
PartialSort(Left,J);
IF Right>I THEN
PartialSort(I,Right);
END;

BEGIN

PartialSort(1,MaxArray);

END;