Что такое алгоритм, а что означает алгоритм? Мало что я понимаю слово, это то, что оно не относится к конкретному языку или шаблону проектирования, скорее это один из самых основных принципов (поэтому я думаю, что этот вопрос заставляет меня выглядеть глупо).
Одна из «опций», которую я понимаю, заключается в том, что это означает метод получения чего-либо, который может быть записан в виде списка в псевдокоде.
Когда я пишу более сложный код, я думаю, что нужно сделать, с чем и как я туда попаду (не на языке программирования), а затем пишу это в коде. Это хороший способ сделать это, и это как-то связано с алгоритмами?
(Я хотел спросить здесь скорее о Stackoverflow, потому что речь идет не о конкретной проблеме / языке, плюс у меня возникает ощущение, что большинство людей здесь знают «почему», или, по крайней мере, ответы здесь более подробные, а не о Stackoverflow где это отличается, извините, если бы я спросил там)
источник
Ответы:
Алгоритм - это конечная последовательность четко определенных инструкций для вычисления функции (или выполнения процедуры), которая заканчивается в четко определенном конечном состоянии.
источник
На самом деле это довольно интересный вопрос, и на самом деле это вопрос открытых исследований.
Юрий Гуревич, один из гигантов теории алгоритмов, в настоящее время читает серию видеолекций на веб-сайте сообщества Microsoft Channel9:
Как видите, сам ваш вопрос на самом деле является названием второй лекции. Тем не менее, я настоятельно рекомендую вам посмотреть все три из них.
Первый, в частности, содержит пару примеров алгоритмов, которые делают недействительными практически все определения, приведенные в большинстве других ответов здесь.
источник
Алгоритм похож на хороший рецепт приготовления . У вас есть некоторые входы, некоторые четко определенные промежуточные шаги и вы получите окончательный результат.
Применительно к программированию, это однозначное описание шагов, которые необходимо выполнить для решения конкретной проблемы. Все, что вы можете записать на выбранном вами языке программирования, можно рассматривать как алгоритм, но обычно этот термин используется только для общих логических или математических задач, таких как сортировка или поиск.
источник
Алгоритм - это набор правил или процессов (в расчете), используемых для решения проблем. По сути, есть проблема, вам нужно решение, а процесс к этому решению - алгоритм. Алгоритм имеет конечные наборы правил / процессов для достижения решения.
Если вы похожи на Эдсгера В. Дейкстры , вы напишите свой алгоритм на листе бумаги и разработаете / уточните алгоритм на бумаге, пока не будете удовлетворены своими алгоритмами. В противном случае (особенно при написании документации) потоковая диаграмма используется для схематического представления потока алгоритма / процесса. Это позволяет другим критиковать блок-схему и при необходимости улучшать ее (не беспокоясь о том, какой язык программирования необходим).
Я не знаю, отвечает ли это на ваш вопрос.
источник
Алгоритм: упорядоченный набор операций, которые 1) однозначны и 2) эффективно вычисляются, так что выполнение операций, начиная с первого, приводит к результату после конечного числа операций.
источник
Алгоритм Это комбинация последовательных шагов (этими шагами могут быть вычисления, обработка данных и задачи рассуждения), используемые для решения проблемы очень простым и эффективным способом.
Он спроектирован наиболее эффективно, чтобы его можно было выразить в ограниченном количестве пространства и времени. Мы можем реализовать его на любом языке программирования.
Свойства алгоритма: следующие основные свойства алгоритма:
Алгоритм должен иметь уникальное имя. Он должен иметь явно определенные наборы входов и выходов. Алгоритм должен быть в последовательном порядке с однозначными операциями. У него должна быть какая-то конечная точка, т. Е. Он останавливается за конечное время. нажмите здесь, чтобы узнать о разработке и анализе алгоритма
источник
Я использую термин для описания формулы для решения конкретной проблемы. Формула не обязательно должна быть написана в математике или иметь отношение 1: 1 с методом. В школе алгоритмы и структуры данных тесно связаны и могут быть написаны в виде математических формул или доказаны с использованием доказательств.
источник
Алгоритм является абстракцией компьютерной программы и состоит из набора инструкций для выполнения определенной задачи за конечное число шагов, хотя ограничение на количество шагов может быть очень большим, а отдельные шаги могут быть сложными ( конечно) задачи сами по себе. Хотя есть (правильные) программы, которые в целом известны как неалгоритмические, все они работают, повторяя алгоритмические фрагменты в некотором паттерне. (Более интересными являются программы, статус завершения которых неизвестен, но большинство программистов фактически не имеют дело с такими намеренными действиями; я знаю, что нет!)
источник
ИМО никто точно не знает :) Я видел термин, применяемый только к функциям математических вычислений, к любой функции, которая принимает ввод и производит вывод, и ко всему, что принимает ввод и выполняет какие-то операции над ним.
Считаете ли вы что-нибудь / все из следующего алгоритмом?
finder
Функция , которая запрашивает базу данных для объекта клиентаисточник
Алгоритм - это идея, метод, методика, «ум» для вычисления или выполнения задачи, которая носит абстрактный характер, но, поскольку она работает на компьютерах в реальном мире, мы стремимся к тому, чтобы она использовала как можно меньше ресурсов. , которые, в компьютерном мире, время и память.
источник
Алгоритм - это последовательность четко определенных шагов, которые дают результат за конечное время.
Четко определенный шаг: это то, что вы можете сделать или рассчитать, это точно определено. Просто прочитав шаг, вы знаете, что вам нужно сделать и как это сделать. В частности, вы можете написать это на языке программирования, который вы знаете, и быть уверенным, что фрагмент программы точно соответствует шагу.
Последовательность: шаги выполняются в указанном порядке. Шаги могут выполняться более одного раза в зависимости от данных (циклов) или не выполняться вообще в зависимости от данных (операторов if). Параллельные алгоритмы налагают только частичный порядок на шаги, поэтому я упрощаю здесь. Было бы правильнее описать его как частично упорядоченный набор, чем последовательность, но я хотел бы сделать слова немного проще. Кроме того, можно легко вставить частично упорядоченный набор в полный порядок.
Результат: конечное состояние или значение. Это не должно быть предсказуемо заранее, но это должен быть определенный конец, удовлетворяющий некоторому условию. Это означает, что операционная система не является алгоритмом, хотя она использует их очень много.
Конечно: алгоритм гарантированно остановится когда-нибудь, по крайней мере, на машине, которая может работать достаточно долго. Это не обязательно гарантирует остановку в предсказуемое время, и не гарантируется, что он остановится до того, как солнце расширится и станет красным на любой существующей машине. Это также означает, что операционная система не является алгоритмом, так как в идеале она будет работать вечно. Я видел слово «процедура», используемое для описания чего-то, что было бы алгоритмом, если бы мы были уверены, что оно когда-нибудь остановится. (Возможно иметь алгоритм, который остановится за неизвестное количество времени. Предположим, предположим, что гипотеза Гольдбаха была математически ложной, в неконструктивном доказательстве, поэтому было четное число> 2, которое не было суммой двух простых чисел Алгоритм, который просто проверяет четные числа, в конечном итоге завершается,
Алгоритм является намеренно абстрактной вещью, поэтому мы не рассматриваем такие вопросы, как «Возможно ли физически выполнить это до тепловой смерти Вселенной?». На них будет слишком сложно ответить. Если это относится к компьютерным операциям, это легко реализовать на языке программирования.
источник
Если бы мне нужно было дать общее определение, я бы сказал, что алгоритм - это формула для решения вычислительной задачи, которая более сложна, чем конечное решение, которое оказывается более очевидным / грубым.
Также важно отметить, что алгоритм не является каким-либо конкретным исходным кодом; это само вычисление. Среди прочего, это означает, что любой язык, полный по Тьюрингу, может реализовать любой алгоритм, который может реализовать любой другой язык, полный по Тьюрингу.
источник