
pascal 快速排序代码
2个回答
展开全部
procedure qsort(l,r:longint);
var i,j,x,temp:longint;
begin
i:=l;
j:=r;
x:=a[(i+j)div 2];
repeat
while x>a[i] do inc(i);
while x<a[j] do dec(j);
if i<=j then
begin
temp:=a[i];
a[i]:=a[j];
a[j]:=temp;
inc(i);
dec(j);
end;
until i>j;
if i<r then qsort(i,r);
if j>l then qsort(l,j);
end;
end;
var i,j,x,temp:longint;
begin
i:=l;
j:=r;
x:=a[(i+j)div 2];
repeat
while x>a[i] do inc(i);
while x<a[j] do dec(j);
if i<=j then
begin
temp:=a[i];
a[i]:=a[j];
a[j]:=temp;
inc(i);
dec(j);
end;
until i>j;
if i<r then qsort(i,r);
if j>l then qsort(l,j);
end;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询