asobio是什么牌子贵吗:可以告诉我快速排序的PASCAL整个程序吗?

来源:百度文库 编辑:高校问答 时间:2024/05/05 20:29:59
我一直看这个快排,可都是子程序,无法留下一个整体印象,总是遗忘,能提供给我一个完整的程序吗?谢谢
急!

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.