Алгоритм — это набор шагов операций для решения задачи, связанной с выполнением вычислений, обработкой данных и задачами автоматического рассуждения. Алгоритм является эффективным методом, который может быть выражен в течение ограниченного времени и пространства.
Алгоритм — лучший способ представить решение конкретной задачи очень простым и эффективным способом. Если у нас есть алгоритм для конкретной задачи, то мы можем реализовать его на любом языке программирования, а это означает, что алгоритм не зависит от каких-либо языков программирования .
Разработка алгоритма
Важные аспекты разработки алгоритма включают создание эффективного алгоритма для эффективного решения проблемы с использованием минимального времени и пространства.
Чтобы решить проблему, можно использовать разные подходы. Некоторые из них могут быть эффективными с точки зрения затрат времени, тогда как другие подходы могут быть эффективными с точки зрения памяти. Однако следует иметь в виду, что и потребление времени, и использование памяти не могут быть оптимизированы одновременно. Если нам требуется, чтобы алгоритм выполнялся за меньшее время, мы должны вкладывать больше памяти, а если нам требуется алгоритм для работы с меньшей памятью, нам нужно больше времени.
Этапы разработки проблемы
Следующие шаги участвуют в решении вычислительных задач.
- Определение проблемы
- Разработка модели
- Спецификация алгоритма
- Разработка алгоритма
- Проверка правильности алгоритма
- Анализ алгоритма
- Реализация алгоритма
- Тестирование программы
- Документация
Характеристики алгоритмов
Основные характеристики алгоритмов следующие:
-
Алгоритмы должны иметь уникальное имя
-
Алгоритмы должны иметь четко определенный набор входов и выходов
-
Алгоритмы хорошо упорядочены с однозначными операциями
-
Алгоритмы останавливаются за конечное время. Алгоритмы не должны работать бесконечно, т. Е. Алгоритм должен заканчиваться в некоторой точке
Алгоритмы должны иметь уникальное имя
Алгоритмы должны иметь четко определенный набор входов и выходов
Алгоритмы хорошо упорядочены с однозначными операциями
Алгоритмы останавливаются за конечное время. Алгоритмы не должны работать бесконечно, т. Е. Алгоритм должен заканчиваться в некоторой точке
ПСЕВДОКОД
Псевдокод дает общее описание алгоритма без неоднозначности, связанной с простым текстом, но также без необходимости знать синтаксис конкретного языка программирования.
Время выполнения может быть оценено в более общем виде с использованием псевдокода для представления алгоритма в виде набора фундаментальных операций, которые затем могут быть подсчитаны.
Разница между алгоритмом и псевдокодом
Алгоритм — это формальное определение с некоторыми специфическими характеристиками, которое описывает процесс, который может быть выполнен компьютером-машиной Тьюринга для выполнения конкретной задачи. Как правило, слово «алгоритм» может использоваться для описания любой задачи высокого уровня в области компьютерных наук.
С другой стороны, псевдокод — это неформальное и (часто рудиментарное) удобочитаемое описание алгоритма, оставляющее много детальных деталей о нем. Написание псевдокода не имеет ограничений по стилям, и его единственная цель — описать шаги алгоритма высокого уровня в очень реалистичной манере на естественном языке.
Например, ниже приведен алгоритм сортировки вставок.
Algorithm: Insertion-Sort Input: A list L of integers of length n Output: A sorted list L1 containing those integers present in L Step 1: Keep a sorted list L1 which starts off empty Step 2: Perform Step 3 for each element in the original list L Step 3: Insert it into the correct position in the sorted list L1. Step 4: Return the sorted list Step 5: Stop
Вот псевдокод, который описывает, как высокоуровневый абстрактный процесс, упомянутый выше в алгоритме Insertion-Sort, может быть описан более реалистичным образом.
for i <- 1 to length(A) x <- A[i] j <- i while j > 0 and A[j-1] > x A[j] <- A[j-1] j <- j - 1 A[j] <- x
В этом руководстве алгоритмы будут представлены в виде псевдокода, который во многом похож на C, C ++, Java, Python и другие языки программирования.