凯尔莫罕凯拉在哪:可以告诉我快速排序的PASCAL整个程序吗?
来源:百度文库 编辑:中科新闻网 时间:2024/05/15 10:39:51
急!
program QSort;
{$R-,S-}
uses Crt;
const Max = 1000;
type List = array[1..Max] of Integer;
var
Data: List;
I: Integer;
procedure QuickSort(var A: List; Lo, Hi: Integer);
procedure Sort(l, r: Integer);
var
i, j, x, y: integer;
begin
i := l; j := r; x := a[(l+r) DIV 2];
repeat
while a[i] < x do i := i + 1;
while x < a[j] do j := j - 1;
if i <= j then
begin
y := a[i]; a[i] := a[j]; a[j] := y;
i := i + 1; j := j - 1;
end;
until i > j;
if l < j then Sort(l, j);
if i < r then Sort(i, r);
end;
begin {QuickSort};
Sort(Lo,Hi);
end;
begin {QSort}
Write('Now generating 1000 random numbers...');
Randomize;
for i := 1 to Max do Data[i] := Random(30000);
Writeln;
Write('Now sorting random numbers...'); {这里是生成Max个随即数}
QuickSort(Data, 1, Max);{开始排序}
Writeln;
for i := 1 to 1000 do Write(Data[i]:8);
end.