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