求PASCAL排序最快的方法 要有程序的

来源:百度知道 编辑:UC知道 时间:2024/09/20 20:50:14
要求 快排

Program Qsort;
Var
s, i: Integer;
a: Array[1..101]Of Integer;
Procedure Init;
Begin
ReadLn(s);
For i:=1 To s Do
Read(a[i]);
ReadLn;
End;

Procedure Print;
Begin
For i:=1 To s Do
Write(a[i]);
End;

Procedure QSort(i, j: Integer);
Var
x, y, temp: Integer;
si, fst: Boolean;
Begin
If j < i Then Exit;
x := i;
y := j + 1;
temp := a[i];
While x <> y Do Begin
Repeat
Dec(y);
Until (a[y] < temp)Or(a[x] = a[y]);
a[x] := a[y];
If x <> y Then Begin
Repeat
Inc(x);
Until (a[x] > temp)Or(a[x] = a[y]);
a[y] := a[x];
End;
End;
a[x] := temp;
QSort(i, x - 1);
QSort(x + 1, j);
End;

Begin
Init;
QSort(1, s);
Pri