В чем разница между алгоритмом и методом
Как вы различаете алгоритм и метод? Почему мы называем метод Ньютона или Форд-Faulkerson алгоритмов метода? Каковы свойства хорошего алгоритма и что определяет метод как алгоритм?
11 ответов
алгоритмы завершаются конечным числом шагов.
процедуру, которая имеет все характеристики алгоритма, за исключением того, что ей не хватает конечности, можно назвать вычислительным методом. Евклид первоначально представил не только алгоритм для наибольшего общего делителя чисел, но и очень похожую геометрическую конструкцию для "наибольшей общей меры" длин двух линейных сегментов; это вычислительный метод, который не завершите, если заданные длины несоизмеримы. -- D. кнут, TAOCP vol 1, Основные понятия: алгоритмы
метод Ньютона Рафсона не гарантированно сходится, а не обнаруживает сбой сходимости. Если вы обернете метод с обнаружением сходимости и завершением в конечном Эпсилоне или после конечного числа шагов, вы получите алгоритм.
нет технической разницы между термином "метод", как в" методе Ньютона "и " алгоритме"."
EDIT: по размышлении, возможно, Пит прав, что алгоритмы заканчиваются, а методы не могут (Кто я такой, чтобы спорить с кнутом? Однако я не думаю, что это различие, которое большинство людей будет делать, основываясь только на вашем использовании того или иного слова.
на мой взгляд, метод является более общей концепцией, чем алгоритм, и может быть чем угодно, например, запись данных в файл. Почти все, что должно произойти из-за события или какого-то логического выражения. Кроме того, значение слов "метод" и "алгоритм" может варьироваться в зависимости от того, в каком контексте они используются. Их можно использовать для описания одного и того же.
В общем программировании говорят, алгоритмы-это шаги, с помощью которых выполняется задача. Согласно Википедия,
алгоритм-это конечная последовательность инструкций, явная пошаговая процедура решения задачи, часто используемая для расчета и обработки данных. Это формально тип эффективного метода, в котором список четко определенных инструкций для выполнения задачи, когда задано начальное состояние, будет проходить через четко определенный ряд последовательных состояний, в конечном счете заканчивающихся конечным состоянием. Переход из одного состояния в другое не всегда детерминирован; некоторые алгоритмы, известные как вероятностные алгоритмы, учитывать случайности.
в информатике метод или функция является частью объектно-ориентированной философии программирования, где программы состоят из классов, содержащих методы/функции для выполнения определенных задач. Еще раз цитирую Википедия
в объектно-ориентированном программировании метод-это подпрограмма, которая исключительно связана либо с классом (так называемые методы класса или статические методы), либо с объектом (так называемые методы экземпляра). Как и процедура в процедурных языках программирования, Метод обычно состоит из последовательности операторов для выполнения действия, набора входных параметров для настройки этих действий и, возможно, выходного значения (называемого возвращаемым значением) некоторых добрый. Методы могут предоставить механизм доступа (как для чтения, так и для записи) к инкапсулированным данным, хранящимся в объекте или классе.
короче говоря, алгоритм-это шаги, с помощью которых мы делаем что-то вроде включения лампочки:
1) Прогулка к переключателю 2) Флип Переключатель 3) Поток Электронов 4) свет, генерируемый
методы-это то, где мы фактически кодируем действия внутри класса.
Я думаю, это просто потому, что исходная область алгоритма. Если изобретатель в области компьютерных наук, он может предпочесть называется алгоритм. В области математики и других наук они могут предпочесть метод.
в контексте, который вы указываете (метод Ньютона и т. д.) нет существенной разницы между алгоритмом и методом. Оба набора являются пошаговыми инструкциями для решения проблемы. В статье Википедии о методе Ньютона говорится: "алгоритм является первым в классе методов домовладельца, за которым следует метод Галлея". Граница в лучшем случае размыта.
в информатике алгоритм по-прежнему является пошаговым способом решения проблемы-an реализация-агностический комплекс шагов. Метод обычно ссылается на фрагмент кода, связанный с классом или объектом, который выполняет некоторую задачу - он может потенциально реализовать многие алгоритмы.
Ну, для любителей этимологии
http://www.etymonline.com/index.php?search=algorithm+method&searchmode=or
алгоритм так же,как формула для решения любой конкретной проблемы шаг за шагом, без двусмысленности к любому шагу, и должен иметь некоторую конечную точку. методология-это более общая форма любого решения. он предоставил способ решения любой проблемы, но в алгоритме способ более точно сформулирован в направлении решения.
метод аналогичен стратегии, алгоритм аналогичен тактике. Пример: во время войны вы разрабатываете стратегию (метод) захвата страны: сначала захватывайте порты, продвигайтесь на запад по суше, затем окружайте капитал и т. д. Эта стратегия разделена на несколько тактических этапов (алгоритмов): во-первых, тот, который говорит солдатам шаг за шагом, как именно они собираются взять порты; затем тот, который говорит солдатам, как они должны продвигаться на запад; затем один с точными шагами для солдат окружить город и т. д.
процедура может продолжаться вечно. Где как алгоритм, в конечном итоге завершится и каждый шаг будет точно определен.
Что касается метода Форда-Фолкерсона, CLRS называет его методом, а не алгоритмом, потому что "он охватывает несколько реализаций с различным временем выполнения"[pp 651. 2-й выпуск]