В чем разница между алгоритмом и методом - PullRequest
19 голосов
/ 18 мая 2009

Как вы различаете алгоритм и метод? Почему мы не называем Метод Ньютона или Алгоритмы метода Форда-Фолкерсона? Каковы свойства хорошего алгоритма и что квалифицирует метод как алгоритм?

Ответы [ 11 ]

23 голосов
/ 18 мая 2009

Алгоритмы завершаются за конечное число шагов.

Процедура, которая обладает всеми характеристиками алгоритма, за исключением того, что в нем возможно отсутствие конечности, может называться вычислительным методом. Евклид первоначально представил не только алгоритм для наибольшего общего делителя чисел, но также очень похожую геометрическую конструкцию для «наибольшей общей меры» длин двух отрезков; это вычислительный метод, который не завершается, если данные длины несоизмеримы. - Д.Кнут, TAOCP, том 1, Основные понятия: алгоритмы

Метод Ньютона-Рафсона не гарантированно сходится, а также не обнаруживает сбой конвергенции. Если вы завершите метод с обнаружением и прекращением сходимости в конечном эпсилоне или после конечного числа шагов, вы получите алгоритм.

7 голосов
/ 18 мая 2009

Технических различий между термином «метод», как в «методе Ньютона» и «алгоритме» нет.

РЕДАКТИРОВАТЬ: Подумав, возможно, Пит прав, что алгоритмы прекращаются, а методы не могут (кто я такой, чтобы спорить с Кнутом?). Однако я не думаю, что это различие, которое большинство людей проведет на основе только вашего использования одно слово или другое.

3 голосов
/ 18 мая 2009

Вообще говоря, программирование - это шаги, с помощью которых выполняется задача. Согласно Википедии ,

алгоритм - это конечная последовательность инструкций, явная пошаговая процедура решения проблемы, часто используемая для расчета и обработки данных. Формально это тип эффективного метода, в котором список четко определенных инструкций для выполнения задачи будет проходить через четко определенный ряд последовательных состояний, в конечном итоге завершаясь в конечном состоянии. Переход из одного состояния в другое не обязательно является детерминированным; некоторые алгоритмы, известные как вероятностные алгоритмы, включают случайность. <</p>

В информатике метод или функция являются частью объектно-ориентированной философии программирования, когда программы состоят из классов, содержащих методы / функции для выполнения конкретных задач. Еще раз цитирую Википедию

В объектно-ориентированном программировании метод - это подпрограмма, которая связана исключительно с классом (называемым методами класса или статическими методами) или с объектом (называемым методами экземпляра). Подобно процедуре в процедурных языках программирования, метод обычно состоит из последовательности операторов для выполнения действия, набора входных параметров для настройки этих действий и, возможно, выходного значения (называемого возвращаемым значением) некоторого вида. Методы могут предоставить механизм доступа (как для чтения, так и для записи) к инкапсулированным данным, хранящимся в объекте или классе. <</p>

Короче говоря, алгоритм - это шаги, с помощью которых мы делаем что-то, например, включаем лампочку:

1) Прогулка для переключения 2) флип-переключатель 3) Поток электронов 4) Свет генерируется

Методы - это то, где мы фактически кодируем действия внутри класса.

3 голосов
/ 18 мая 2009

По моему мнению, метод является более общей концепцией, чем алгоритм, и может быть более или менее чем угодно, например, запись данных в файл. Почти все, что должно произойти из-за события или какого-то логического выражения. Кроме того, значение слов «метод» и «алгоритм» может варьироваться в зависимости от того, в каком контексте они используются. Их можно использовать для описания одного и того же.

1 голос
/ 11 мая 2016

Метод аналогичен стратегии, алгоритм аналогичен тактике. Пример: на войне вы разрабатываете стратегию (метод) захвата страны: сначала захватываете порты, продвигаетесь на запад, затем окружаете столицу и т. Д. Эта стратегия разделена на несколько тактических этапов (алгоритмов): первый, который рассказывает солдатам шаг за шагом, как именно они собираются взять порты; затем тот, который говорит солдатам, как они должны продвигаться на запад; затем один с точными шагами для солдат, чтобы окружить город, и т. д.

1 голос
/ 28 февраля 2011

Алгоритм подобен формуле для поэтапного решения любой конкретной проблемы, без какой-либо двусмысленности, и должен иметь некоторую конечную точку. Методология является более общей формой любого решения. это дало способ решить любую проблему, но в алгоритме более точно сформулирован путь к решению.

1 голос
/ 18 мая 2009

Ну, для любителей этимологии

http://www.etymonline.com/index.php?search=algorithm+method&searchmode=or

1 голос
/ 18 мая 2009

В указанном контексте (метод Ньютона и т. Д.) Нет существенной разницы между алгоритмом и методом. Оба набора представляют собой пошаговые инструкции для решения проблемы. В статье Википедии о методе Ньютона говорится: «Алгоритм является первым в классе методов Хаусхолдера, за которым следует метод Галлея». Граница в лучшем случае размытая.

В информатике алгоритм по-прежнему является пошаговым способом решения проблемы - независимым от реализации набором шагов. Метод обычно ссылается на кусок кода, связанный с классом или объектом, который выполняет какую-то задачу - он может потенциально реализовать много алгоритмов.

1 голос
/ 18 мая 2009

Я думаю, что это только потому, что область происхождения алгоритма. Если изобретатель имеет опыт работы в области компьютерных наук, он может предпочесть названный алгоритм. В области математики и других наук они могут предпочесть названный метод.

0 голосов
/ 14 февраля 2013

Процедура может продолжаться вечно. Где, как Алгоритм, в конечном итоге завершится, и каждый шаг будет точно определен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...