第1个回答 2014-02-21
procedure Sort(l,r:longint);
var i,j,x,y:longint;
begin
i:=l;j:=r;x:=a[(l r) div 2]; //找到中间数X
repeat //循环把中间数放到正确位置,即左边全部小于X,右边全部大于X
while a[i]>x do i:=i 1; //找到左边一个大于X的数
while x>a[j] do j:=j-1; //找到右边一个小于X的数
if i<=j then begin
y:=a[i];a[i]:=a[j];a[j]:=y; //交换