Algorithm

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


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

  • Конечно. Количество инструкций должно быть конечным.
  • Исполняемый файл. Все инструкции должны выполняться каким-либо образом, зависящим от языка, за конечное время.

Алгоритм не обязательно должен быть детерминированным — существует множество алгоритмы, например QuickSort со случайным выбором опорного элемента.

Алгоритм может быть выражен разными способами:

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

Алгоритм может решить класс задач. Например, задачи "сумма 1 и 3" и "сумма 4 и 5" относятся к одному и тому же классу: "сумма двух целых чисел". em> Кроме того, данный класс задач обычно может быть решен с помощью различных алгоритмов.

Одним из важных аспектов разработки алгоритма является производительность. Для больших наборов данных хороший алгоритм может на несколько порядков превосходить плохой алгоритм. Производительность алгоритма часто оценивается с помощью больших O или Θ обозначений, но следует быть осторожным с асимптотическими обозначениями, поскольку большие константы могут быть участие.

Ключевая классификация алгоритмов называется сложностью алгоритма.

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

Ссылки

Дополнительные ресурсы по алгоритмам включают:

  • Алгоритм в Википедии
  • Алгоритм Howstuffworks
  • Словарь алгоритмов и структур данных
  • Реализации алгоритмов 1 — Github
  • Реализации алгоритмов 2 — Github

Вопросы, связанные с [algorithm]:

  • 1