Вычислить разницу в скорости выполнения двух различных участков кода - PascalABC.NET
Формулировка задачи:
Как вычислить разницу в скорости выполнения двух различных участков кода?
Решение задачи: «Вычислить разницу в скорости выполнения двух различных участков кода»
textual
Листинг программы
const n=1000;
var a:array[1..n] of integer;
i,j,x,t1,t2,t3,t4,d1,d2,r:integer;
begin
randomize;
writeln('Исходный массив');
for i:=1 to n do
begin
a[i]:=random(1000);
write(a[i]:4);
end;
writeln;
t1:=milliseconds;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
writeln('Первая сортировка по возрастанию');
for i:=1 to n do
write(a[i]:4);
writeln;
t2:=milliseconds;
d1:=t2-t1;
writeln('Время этого участка кода=',d1,' млс');
t3:=milliseconds;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
writeln('Вторая сортировка по убыванию');
for i:=1 to n do
write(a[i]:4);
writeln;
t4:=milliseconds;
d2:=t4-t3;
writeln('Время этого участка кода=',d2,' млс');
r:=abs(d1-d2);
writeln('Разница в скорости=',r,' млс');
end.
Объяснение кода листинга программы
- Объявлены переменные: n, a, i, j, x, t1, t2, t3, t4, d1, d2, r (строки 1-2)
- Инициализируется генератор случайных чисел (строка 3)
- Выводится исходный массив (строки 4-10)
- Первая сортировка по возрастанию (строки 11-16)
- Вторая сортировка по убыванию (строки 17-22)
- Вычисляется время выполнения каждого участка кода (строки 23-24)
- Вычисляется разница в скорости (строка 25)
- Выводится результат (строки 26-27)