//danhle
var a,b:array[1..1000] of int64;n,d,d1:int64;
Procedure sxn(l,h:longint);
Var
i,j:longint;
x,tg:int64;
Begin
i:=l; j:=h; x:=a[(l+h) div 2];
Repeat
while a[i]<x do inc(i);
while a[j]>x do dec(j);
if i<=j then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
inc(i); dec(j);
end;
until i>j;
if i<h then sxn(i,h);
if j>l then sxn(l,j);
End;
var i,j,s:longint;
begin
read(n);
for i := 1 to n do
begin
read(a[i]);
end;
sxn(1,n);
for i := 1 to n do
begin
write(a[i],' ');
end;
end.
Bạn tham khảo code mình nha qui tắc quicksort tách phần tử trung gian nếu ai < trung gian ném qua trái còn lại ném qua phải là xong nhaaa.
@Danhle