blob: 9f62f94e0d3079111849e77c9564974ef7a38cf8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
program qsort;
extern srand(seed:integer):void;
extern rand():integer;
extern time(t:integer):integer;
extern printf(fmt:string; ...):integer;
function qsort(arr:^integer; start:integer; ends:integer):void;
var
i,j,mid,t:integer;
begin
if ends>start then begin
mid := arr[ends];
i := start;
for j := start to ends-1 do
if arr[j]<mid then begin
t := arr[i];
arr[i] := arr[j];
arr[j] := t;
i := i+1;
end;
t := arr[i];
arr[i] := arr[ends];
arr[ends] := t;
qsort(arr, start, i-1);
qsort(arr, i+1 ,ends)
end
end;
function main():integer;
var
arr:array[0..99999] of integer;
i:integer;
begin
srand(time(0));
for i:=0 to 99999 do
arr[i] := rand() mod 1000;
qsort(@arr, 0, 99999);
for i:=99999 downto 0 do
printf('%d ', arr[i]);
main := 0
end;
|