Пример:
Program gg;
var s,i:integer;
begin
s:=0;
for i:=1 to 5 do
s:=s+i;
writeln(s);
end.
В алгоритме выполняются три операции.
1. Присваивание s:=0;
2. И две операции в цикле: присваивание и сложение
Суммарное число выполняемых операций = 5*2+1. (11)
Время выполнения алгоритма будет пропорционально 5*2+1 (11)
В этом случае говорят, что временная сложность алгоритма зависит линейно от объема данных. Если данных станет в 2 раза больше, и времени на их обработку понадобится в 2 раза больше. Если данных станет больше в 10 раз, и время увеличится в 10 раз.
Задание 1. Оцените временную сложность алгоритма вычисления факториала (произведения) целого положительного числа. Значение x вводится с клавиатуры.
Program gg;
var m, i, x,f: Integer;
begin
m:=1;
readln(x);
for i:=2 to x do
m:=m*i;
F:=m;
writeln(f);
end.
Answers & Comments
Ответ:
3x - 2
Объяснение:
Program gg;
var m, i, x,f: Integer;
begin
m:=1;
readln(x);
for i:=2 to x do
m:=m*i;
F:=m;
writeln(f);
end.
В алгоритме выполняются четыре операции.
1. Присваивание m:=1
2. И три операции в цикле: присваивание, умножение и присваивание
Суммарное число выполняемых операций = 3*(x - 2 + 1) + 1 = 3(x-1)+1 = 3x - 3 + 1 = 3x - 2
Время выполнения алгоритма будет пропорционально 3x - 2