1. Максимальная скорость выполнения алгоритма (временная сложность – время выполнения программы, работающей по данному алгоритму).
Временем работы алгоритма называется количество выполненных им элементарных операций T. Такой подход позволяет оценивать именно качество алгоритма, а не свойства исполнителя (например, быстродействие компьютера, на котором выполняется алгоритм).
Как правило, величина T будет существенно зависеть от объема исходных данных: поиск в списке из 10 элементов завершится гораздо быстрее, чем в списке из 10 000 элементов. Поэтому сложность алгоритма обычно связывают с размером входных данных n и определяют как функцию T(n). Например, для алгоритмов обработки массивов в качестве размера n используют длину массива. Функция T(n) называется временнóй сложностью алгоритма.
2. Минимальный объем памяти (пространственная сложность).
3. Проста и понятность, что позволяет легче отлаживать программу.
При составлении алгоритмов, как правило, используют следующие правила.
1. При построении алгоритма, прежде всего, необходимо задать множество объектов, с которыми будет работать алгоритм, то есть определить входные и выходные данные. Алгоритм приступает к работе с некоторым набором данных, которые называются входными, и в результате своей работы выдает данные, которые называются выходными. Таким образом, алгоритм преобразует входные данные в выходные.
2. Для работы алгоритма требуется память. В памяти размещаются входные данные, с которыми алгоритм начинает работать, промежуточные данные и выходные данные, которые являются результатом работы алгоритма. Память является дискретной, т.е. состоящей из отдельных ячеек. Поименованная ячейка памяти носит название переменной. В теории алгоритмов размеры памяти не ограничиваются, т. е. считается, что мы можем предоставить алгоритму любой необходимый для работы объем памяти. В языках программирования транслятор языка анализирует все идентификаторы в тексте программы и отводит память под соответствующие переменные.
3. Алгоритм строится из отдельных шагов (действий, операций, команд). Множество шагов, из которых составлен алгоритм, конечно.
4. После каждого шага необходимо указывать, какой шаг выполняется следующим, либо давать команду остановки.
Способы представления алгоритма
Словесный
Графический
Табличный
Псевдокод
Последовательный список команд на естественном языке
Графическое изображение алгоритма в виде схемы связанных между собой с помощью стрелок
Таблица, включающая входные данные, операции и выходные операции
Запись алгоритма на формальном алгоритмическом языке