永发信息网

pascal 快排

答案:1  悬赏:30  手机版
解决时间 2021-05-14 16:42
  • 提问者网友:战魂
  • 2021-05-14 02:45
要求写一个快排的程序,简洁一点的。
最佳答案
  • 五星知识达人网友:長槍戰八方
  • 2021-05-14 03:56

var
 i,j,k,m,n,t:longint;
 a:array[1..1000]of longint;
 
procedure qsort(l,r:longint);
var i,j,m:longint;
begin
 i:=l;j:=r;m:=a[(l+r)div 2];
 repeat
  while a[i]<m do inc(i);
  while a[j]>m do dec(j);
  if i<=j then
   begin
    t:=a[i];a[i]:=a[j];a[j]:=t;
    inc(i);dec(j);
   end;
 until i>j;
 if i<r then qsort(i,r);
 if l<j then qsort(l,j);
end;


begin
 readln(n);
 for i:=1 to n do  read(a[i]);
 qsort(1,n);
 for i:=1 to n do  write(a[i],' ');
 writeln;
end. 

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯