DAA - Введение
Алгоритм - это набор шагов операций для решения задачи, выполняющей задачи расчета, обработки данных и автоматизированного обоснования. Алгоритм - это эффективный метод, который можно выразить за конечное количество времени и пространства.
Алгоритм - это лучший способ представить решение конкретной проблемы очень простым и эффективным способом. Если у нас есть алгоритм для конкретной проблемы, то мы можем реализовать его на любом языке программирования, а это означает, чтоalgorithm is independent from any programming languages.
Разработка алгоритма
Важные аспекты разработки алгоритмов включают создание эффективного алгоритма для решения проблемы эффективным способом с минимальными затратами времени и пространства.
Чтобы решить проблему, можно использовать разные подходы. Некоторые из них могут быть эффективными с точки зрения затрат времени, тогда как другие подходы могут быть эффективными с точки зрения памяти. Однако следует иметь в виду, что потребление времени и использование памяти нельзя оптимизировать одновременно. Если нам требуется, чтобы алгоритм работал за меньшее время, мы должны инвестировать в больший объем памяти, а если нам требуется, чтобы алгоритм работал с меньшим объемом памяти, нам нужно иметь больше времени.
Шаги по развитию проблемы
Следующие шаги связаны с решением вычислительных задач.
- Определение проблемы
- Разработка модели
- Спецификация алгоритма
- Разработка алгоритма
- Проверка правильности алгоритма
- Анализ алгоритма
- Реализация алгоритма
- Тестирование программы
- Documentation
Характеристики алгоритмов
Основные характеристики алгоритмов следующие:
Алгоритмы должны иметь уникальное имя
Алгоритмы должны иметь явно определенный набор входов и выходов.
Алгоритмы упорядочены с однозначными операциями
Алгоритмы останавливаются за конечное время. Алгоритмы не должны работать до бесконечности, т. Е. Алгоритм должен заканчиваться в какой-то момент.
Псевдокод
Псевдокод дает высокоуровневое описание алгоритма без двусмысленности, связанной с обычным текстом, но также без необходимости знать синтаксис конкретного языка программирования.
Время выполнения можно оценить более общим образом, используя псевдокод, чтобы представить алгоритм как набор основных операций, которые затем можно подсчитать.
Разница между алгоритмом и псевдокодом
Алгоритм - это формальное определение с некоторыми конкретными характеристиками, описывающее процесс, который может быть выполнен полной по Тьюрингу компьютерной машиной для выполнения определенной задачи. Как правило, слово «алгоритм» можно использовать для описания любой задачи высокого уровня в информатике.
С другой стороны, псевдокод - это неформальное и (часто элементарное) удобочитаемое описание алгоритма, оставляющее множество мелких деталей. Написание псевдокода не имеет ограничений по стилям, и его единственная цель - описать высокоуровневые шаги алгоритма в более реалистичной манере на естественном языке.
Например, ниже приведен алгоритм сортировки вставкой.
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 и другие языки программирования.