type sun=array[0..1000(或其它)]of longint(或byte,integer,int64,shortint,
但注意的类型应随之改变)
procedure qsort(var a:sun;m,n:integer);
var i:integer;
function slipt(var a:sun;m,n:integer):integer;
var i,j,k:integer;
t:longint; begin k:=n-m+1;
k:=random(k)+m;
t:=a[k];a[k]:=a[m];
i:=m;j:=n;
while i<>j do
BEGIN
while (i<j)and(a[j]>=t)do dec(j);
if i<j then
begin a
:=a[j];inc(i);
while (a<=t)and(i<j) do inc(i);
if i<j then begin a[j]:=a;dec(j) end
end
END;
a:=t;
slipt:=i;
end;
BEGIN
if n>m then begin
i:=slipt(a,m,n);
qsort(a,m,i-1);
qsort(a,i+1,n)
end
END;
这是快速排序,时间复杂度为O(nlogn)!与9楼一样[ 此贴被sunlight在2005-11-16 09:26重新编辑 ]