На этом шаге мы рассмотрим разложение задачи в последовательность однородных подзадач.
Важный частный случай предыдущего метода, приобретающий, однако, новое качество за счет того, что задача P сводится к n экземплярам более простой задачи R и к простой задаче Q, объединяющей n решений.
S:=0; {Задача Q - подготовка места для суммирования.} for i := 1 to n do S:=S+A[i]*B[i]; {Задача R - перемножение компонент и суммирование.}
Этот алгоритм использует разбиение исходных данных на части - отдельные компоненты векторов.
Однородность подзадач позволяет значительно сократить длину текста алгоритма за счет применения операторов повторения. Итерация на уровне крупных подзадач или отдельных небольших операторов встречается в большинстве реальных алгоритмов и служит основным источником эффективного использования компьютера по сравнению с другими вычислительными средствами (например, непрограммируемым калькулятором).
На следующем шаге мы рассмотрим сведение задачи к самой себе (рекурсия) и метод последовательных приближений.