Что такое алгоритм
- |
- Post By : sergey
- |
- Опубликовано : 7 мая 2023
Существует достаточно много определений слова «алгоритм», и некоторые из них существенно отличаются друг от друга. Причина в том, что понятие алгоритма достаточно ёмкое, и не так просто учесть все его особенности в одном определении и сделать его при этом достаточно понятным. В то же время понимание того, что такое «алгоритм» крайне важно для программиста. Поскольку алгоритм это по сути план (или скелет) программы, научившись составлять алгоритмы, вы сможете эффективно писать код.
Давайте рассмотрим 5 отличительных особенностей или свойств алгоритма, а потом в качестве итога попробуем сформулировать их в одном определении.
- Алгоритм должен представлять процесс решения задачи как упорядоченное выполнение простых шагов. Фраза «упорядоченное выполнение» подразумевает, что для шагов алгоритма обязательно определен порядок, в котором они должны выполняться. При этом каждый шаг чётко обозначен и отделен друг от друга. Это свойство алгоритма называется «дискретность«.
- В каждый момент времени следующий шаг алгоритма однозначно определяется состоянием системы. Это означает, что на каждом этапе выполнения алгоритма мы однозначно можем сказать, какое действие будет выполнятся следующим. Ответ на этот вопрос может зависеть от данных, которые получены на текущем шаге. Для этого одна из конструкций, которая должна присутствовать в алгоритме, это проверка условия. Это свойство называется «детерминированность«.
- Алгоритм должен включать только те команды, которые доступны исполнителю и входят в его систему команд. Другими словами, любая команда алгоритма должна быть понятна исполнителю. А исполнителем может выступать например программа, операционная система, или человек. Это свойство называется «понятность«.
- Алгоритм должен завершать работу и выдавать результат за определенное число шагов. Таким образом алгоритм рассматривается как математическая функция, которая принимает входящие данные и обязательно выдает результат за конечное время и число шагов. Эти 2 свойства называются «завершаемость» и «результативность«.
- Алгоритм должен быть применим к разным наборам начальных данных. Это свойство называется «массовость«. Действительно, если алгоритм можно применить только к одному набору входящих данных, тогда «алгоритм» не нужен. Можно один раз «посчитать» ответ и записать его как результат.
Теперь, когда мы знаем основные особенности алгоритма, попробуем дать его определение.
Алгоритм — это чётко определенная конечная (ограниченная числом) последовательность шагов, каждый из которых отделён друг от друга и должен быть понятен исполнителю. Для каждого шага алгоритма (кроме последнего) однозначно определяется следующий шаг. Алгоритм должен быть применим к разным наборам входящих данных, и выполнение всех шагов алгоритма обязательно приводит к результату.
Получилось ли у меня в этой статье объяснить, что такое «алгоритм»? Напишите в комментариях.