logo search
Answer

31. Оптимизация циклов.

1.Вынесение операторов за пределы цикла (второй вариант чуть быстрее, но расходует болбше памяти, т.к. ввели больше переменных)

For I:=1 to 100 do N:=K+K;

Begin M:=K-1;

J:=2*K+I; For I:=1 to 100 do

A[J]:=K-1; A[N+I]:=M;

End;

2. Развертывание цикла (не помню)

For I:=1 to 1000 do For I:=1 to 500 do

A[I]:=1; Begin

A[I]:=1;

A[I+500]:=1;

End;

3. Переупорядочивание циклов (второй вариант быстрее)

For I:=1 to 20 do For J:=1 to 10 do

For J:=1 to 10 do For I:=1 to 20 do

A[I,J]:=1; A[I,J]:=1;

4. Цикл в теле подпрограммы лучше, чем много раз вызывать подпрограмму в цикле.

5. Меньшее число циклов всегда лучше.