Алгоритм - это последовательность четко определенных шагов, которые дают результат за конечное время.
Четко определенный шаг: это то, что вы можете сделать или рассчитать, это точно определено. Просто прочитав шаг, вы знаете, что вам нужно сделать и как это сделать. В частности, вы можете написать это на языке программирования, который вы знаете, и быть уверенным, что фрагмент программы точно соответствует шагу.
Последовательность: шаги выполняются в указанном порядке. Шаги могут выполняться более одного раза в зависимости от данных (циклов) или не выполняться вообще в зависимости от данных (операторов if). Параллельные алгоритмы налагают только частичный порядок на шаги, поэтому я упрощаю здесь. Было бы правильнее описать его как частично упорядоченный набор, чем последовательность, но я хотел бы сделать слова немного проще. Кроме того, можно легко вставить частично упорядоченный набор в полный порядок.
Результат: конечное состояние или значение. Это не должно быть предсказуемо заранее, но это должен быть определенный конец, удовлетворяющий некоторому условию. Это означает, что операционная система не является алгоритмом, хотя она использует их очень много.
Конечно: алгоритм гарантированно остановится когда-нибудь, по крайней мере, на машине, которая может работать достаточно долго. Это не обязательно гарантирует остановку в предсказуемое время, и не гарантируется, что он остановится до того, как солнце расширится и станет красным на любой существующей машине. Это также означает, что операционная система не является алгоритмом, так как в идеале она будет работать вечно. Я видел слово «процедура», используемое для описания чего-то, что было бы алгоритмом, если бы мы были уверены, что оно когда-нибудь остановится. (Возможно иметь алгоритм, который остановится за неизвестное количество времени. Предположим, предположим, что гипотеза Гольдбаха была математически ложной, в неконструктивном доказательстве, поэтому было четное число> 2, которое не было суммой двух простых чисел Алгоритм, который просто проверяет четные числа, в конечном итоге завершается,
Алгоритм является намеренно абстрактной вещью, поэтому мы не рассматриваем такие вопросы, как «Возможно ли физически выполнить это до тепловой смерти Вселенной?». На них будет слишком сложно ответить. Если это относится к компьютерным операциям, это легко реализовать на языке программирования.