Скачиваний:
12
Добавлен:
01.05.2014
Размер:
83.46 Кб
Скачать

5.2.1. Текст программы

Program laba;

uses Sampler;

type ary=array[0..1000] of real;

const PName: String[10] = 'prog.pas';

procedure sort(var a: ary; n: integer);

var done : boolean;

jump,i,j: integer;

hold :real;

begin

jump := n;

while jump > 1 do

begin

jump := jump div 2;

repeat

done := true;

for j := 1 TO n - jump dO

begin

i := j + jump;

if a[j] > a[i] then

begin

hold:=a[j];

a[j]:=a[i];

a[i]:=hold;

done := false;

end { if }

end { for }

until done

end; { while }

end; { sort }

var list : ary; i:integer;

begin

Sample(PName,55);

randomize;

for i:=0 to 1000 do

list[i]:=random;

sort(list, 1000);

Sample(PName, 59);

end.

5.2.2. Результат профилирования

----------------------------------------------------------------------

Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)

----------------------------------------------------------------------

1 : 55 1 : 59 9788.27 1 9788.27

----------------------------------------------------------------------

5.2.3. Текст программы

Program laba;

uses Sampler;

type ary=array[0..1000] of real;

const PName: String[10] = 'prog.pas';

procedure sort(var a: ary; n: integer);

var done : boolean;

jump,i,j: integer;

hold :real;

begin

Sample(PName, 12);

jump := n;

Sample(PName, 14);

while jump > 1 do

begin

jump := jump div 2;

Sample(PName, 18);

repeat

done := true;

Sample(PName, 21);

for j := 1 TO n - jump dO

begin

i := j + jump;

Sample(PName, 25);

if a[j] > a[i] then

begin

Sample(PName, 28);

hold:=a[j];

Sample(PName, 30);

a[j]:=a[i];

Sample(PName, 32);

a[i]:=hold;

Sample(PName, 34);

done := false;

Sample(PName, 36);

end { if }

end { for }

until done

end; { while }

Sample(PName, 41);

end; { sort }

var list : ary; i:integer;

begin

Sample(PName,46);

randomize;

for i:=0 to 1000 do

list[i]:=random;

Sample(PName, 50);

sort(list, 1000);

Sample(PName, 52);

end.

5.2.4. Результат профилирования

----------------------------------------------------------------------

Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)

----------------------------------------------------------------------

1 : 12 1 : 14 0.03 1 0.03

----------------------------------------------------------------------

1 : 14 1 : 18 0.07 1 0.07

----------------------------------------------------------------------

1 : 18 1 : 21 0.24 9 0.03

----------------------------------------------------------------------

1 : 21 1 : 25 3.59 63 0.06

----------------------------------------------------------------------

1 : 25 1 : 25 12571.92 51615 0.24

1 : 25 1 : 28 1919.95 7811 0.25

1 : 25 1 : 18 2.81 8 0.35

1 : 25 1 : 21 10.77 50 0.22

1 : 25 1 : 41 0.41 1 0.41

----------------------------------------------------------------------

1 : 28 1 : 30 1159.95 7811 0.15

----------------------------------------------------------------------

1 : 30 1 : 32 664.00 7811 0.09

----------------------------------------------------------------------

1 : 32 1 : 34 854.80 7811 0.11

----------------------------------------------------------------------

1 : 34 1 : 36 538.63 7811 0.07

----------------------------------------------------------------------

1 : 36 1 : 25 959.49 7807 0.12

1 : 36 1 : 21 0.46 4 0.11

----------------------------------------------------------------------

1 : 41 1 : 52 0.26 1 0.26

----------------------------------------------------------------------

1 : 46 1 : 50 169.77 1 169.77

----------------------------------------------------------------------

1 : 50 1 : 12 0.29 1 0.29

----------------------------------------------------------------------

Соседние файлы в папке Лабораторная работа №21