Шаг 3.
Методы разработки алгоритмов.
Разложение задачи в последовательность однородных подзадач (итерация)

    На этом шаге мы рассмотрим разложение задачи в последовательность однородных подзадач.

    Важный частный случай предыдущего метода, приобретающий, однако, новое качество за счет того, что задача P сводится к n экземплярам более простой задачи R и к простой задаче Q, объединяющей n решений.


    Очень простой пример: вычисление скалярного произведения двух векторов A и B:
 S:=0; {Задача Q - подготовка места для суммирования.} 
 for i := 1 to n do
    S:=S+A[i]*B[i]; {Задача R - перемножение компонент и суммирование.}

    Этот алгоритм использует разбиение исходных данных на части - отдельные компоненты векторов.

    Однородность подзадач позволяет значительно сократить длину текста алгоритма за счет применения операторов повторения. Итерация на уровне крупных подзадач или отдельных небольших операторов встречается в большинстве реальных алгоритмов и служит основным источником эффективного использования компьютера по сравнению с другими вычислительными средствами (например, непрограммируемым калькулятором).

    На следующем шаге мы рассмотрим сведение задачи к самой себе (рекурсия) и метод последовательных приближений.




Предыдущий шаг Содержание Следующий шаг