В чем разница между алгоритмом и функцией?

Это одно и то же?

Ответ 1

Нет.

Функция представляет собой блок кода в компьютерной программе.

Алгоритм представляет собой абстрактное понятие, описывающее, как решить проблему.

Ответ 2

В математике функция представляет собой "математическое соотношение, так что каждый элемент данного набора (область функции) связан с элементом другого набора (диапазон функции)" (source-google.com, define: function).

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

Термин компьютерной науки выходил из математического термина, являющегося машинной реализацией математической концепции.

Алгоритм - это "точное правило (или набор правил), определяющее, как решить какую-либо проблему" (source - google.com, define: algorithm). Алгоритм может быть определен вне компьютерной науки и не имеет окончательной реализации машины. Вы можете "реализовать" его, написав его вручную:)

Основное различие в том, что в информатике алгоритм является абстрактным и не имеет окончательной реализации машины. Функция конкретна и имеет реализацию машины.

Ответ 3

Алгоритм представляет собой набор инструкций.

В компьютерном программировании функция представляет собой реализацию алгоритма.

Ответ 4

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

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

Ответ 5

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

Ответ 6

Это может быть почти философский вопрос, но я говорю, что алгоритм - это ответ (или как-то) на проблему, когда функция не отвечает на одну проблему сама по себе.

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

Пример: вы хотите отсортировать список номеров. Используемый алгоритм был бы, например, алгоритмом сортировки Merge. Этот конкретный алгоритм на самом деле состоит из нескольких функций, которые будут разделять ваш массив, а другой - на равенство, другой - на объединение всех вместе и т.д.

Ответ 7

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

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

Смутно, разработчики компьютерных языков размывают это различие, используя понятия function, func, method и т.д., чтобы обсудить обе концепции.

Таким образом, различие является одним из спецификаций против определения.

Существует также семантическое различие: алгоритм направлен на решение проблемы. Он целеустремлен. Функция просто есть - нет существенной телеологической составляющей.

Ответ 8

Алгоритм - это реализация функции.

В некоторых случаях алгоритм тривиален:

Функция: сумма двух чисел. Алгоритм: int sum(int x, int y){ return x+y; }

В других случаях это не так:

Функция: Лучший шахматный ход. Алгоритм: Move bestChessMove(State gameState){ //I don't know the algorithm. }

Ответ 9

Алгоритм представляет собой (возможно, неформальную, но обязательно точную) последовательность инструкций. Функция - это формальное правило, которое связывает некоторый вход w/конкретного выхода. Функции реализуют и формализуют алгоритмы. Например. мы можем формализовать "перейти от a к b" как go(a)=b или go(x,a)=b (w/x тот, кто идет) и т.д. Согласно Wikipedia,

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

Итак, вы можете сказать, что "go (ing) from a to b" - эффективный метод вычисления go(a)=b (если вы хотите)

Ответ 10

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

Вот еще одна ссылка:

http://en.wikipedia.org/wiki/Algorithm

http://en.wikipedia.org/wiki/Function_(computer_science)

Ответ 11

Функция является символическим представлением, где метод - это механические шаги, необходимые для получения ответа.

Предположим, что эта функция:

f(x) = x^ 2

Теперь, если я скажу вам считать f(5000), вы должны делать то, что эта функция не говорит. Например, как размножаться. Так что это действительно символы.

Но если у меня есть метод python, например:

x = math.pow(500, 2) # or whatever it is

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