Алгоритм - понятное и точное предписание совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи
Термин алгоритм происходит от имени узбекского ученого Аль-Хорезми, который в своем труде «Арифметический трактат» изложил правила арифметических действий над числами в позиционной десятичной системе счисления. Эти правила и называли алгоритмами. Таким образом, изучаемые в школе правила сложения, вычитания, умножения, деления и т. д. - все это алгоритмы. Многие правила и инструкции представляют собой подробнейшие указания, годные во всевозможных ситуациях.
Виды алгоритмов как логико-математических средств в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:
| механические алгоритмы, иначе детерминированные; | |
| гибкие алгоритмы, иначе вероятностные и эвристические. |
Механический алгоритм задает определенные действия, обозначая их в единственной и достоверной последовательности, обеспечивая тем самым однозначный требуемый или искомый результат, если выполняются те условия процесса или задачи, для которых разработан алгоритм.
Эвристический алгоритм - это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий исполнителя. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и опыте решения схожих задач.
Алгоритм применительно к вычислительной машине - точное предписание, т.е. набор операций и правил их чередования, при помощи которого, начиная с некоторых исходных данных, можно решить любую задачу фиксированного типа.
В процессе алгоритмизации исходный алгоритм разбивается на отдельные связанные части, называемые шагами или частными алгоритмами.
Различают четыре основных типа частных алгоритмов:
| линейный алгоритм, | |
| алгоритм в ветвлением, | |
| циклический алгоритм, | |
| вспомогательный или подчиненный алгоритм. |
Линейный алгоритм - набор инструкций, выполняемых последовательно во времени друг за другом.
Алгоритм с ветвлением - алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.
Циклический алгоритм - алгоритм, предусматривающий повторения одного и того же действия над новыми исходными данными. Необходимо заметить, что циклический алгоритм легко реализуется посредством двух ранее рассмотренных типов алгоритмов.
Вспомогательный или подчиненный алгоритм - алгоритм, ранее разработанный и целиком используемый при алгоритмизации конкретной задачи.
На всех этапах подготовки к алгоритмизации задачи широко используется структурное представление алгоритма в виде блок-схем.
Блок-схема - графическое изображение алгоритма в виде схемы связанных между собой с помощью стрелок (линий перехода) блоков - графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока приведено описание совершаемых в нем действий.
Ниже приведены схемы основных конструкций алгоритмов:

a) линейный; б) циклический; в) с ветвлением.