Алгоритм - точное предписание, определяющее процесс перехода от исходных данных к искомому результату.
Предписание считается алгоритмом, если оно обладает тремя следующими свойствами:
определенностью, т.е. общепонятностью и точностью, не оставляющими место произволу;
массовостью, т.е. возможностью исходить из меняющихся в известных пределах значений исходных данных;
результативностью, т.е. направленностью на получение искомого результата.
Перечисленных свойств вполне достаточно, чтобы можно было определить, является данное конкретное предписание алгоритмом или нет.
Совершенно очевидно, что хорошо известное предписание: «Пойди туда, не знаю куда, принеси то, не знаю что» - алгоритмом не является.
Примерами алгоритмов нематематического характера могут служить различные рецепты из поваренной книги. Рассмотрим алгоритм приготовления бутерброда.
Исходные данные: хлеб (белый, черный), продукт (колбаса, ветчина, сыр, масло).
Искомый результат: бутерброд (ломтик продукта, наложенный на ломтик хлеба).
Предписание:
а) отрезать ломтик продукта;
б) отрезать ломтик хлеба;
Можно легко убедиться, что это предписание обладает всеми тремя свойствами алгоритма:
определенностью (всем понятно, что значит отрезать ломтик, положить один ломтик на другой и как все это сделать);
массовостью (хлеб может быть черным или белым, продукт – колбасой, ветчиной, сыром, маслом);
результативностью (при выполнении предписания получается искомый результат - бутерброд).
При этом последовательность выполнения пунктов а) и б) не существенна. Бутерброды получаются одинаковыми в обоих случаях а) - б) - в) и б) - а) - в). Это объясняется тем, что пункты а) и б) взаимно независимы друг от друга. Пункт в) может быть выполнен только после выполнения и пункта а), и пункта б), т.е. пункт в) зависит и от а), и от б).