Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
86
Добавлен:
10.05.2015
Размер:
1.62 Mб
Скачать

2.2. Свойства алгоритмов

Важнейшими свойствами алгоритма являются:

  • определенность (детерминированность). В алгоритме должна соблюдаться однозначность предписываемой последовательности действий, не допускающая произвольного ее толкования;

  • массовость. Алгоритм решения задачи разрабатывается в общем виде так, чтобы его можно было применить для решения задач, различающихся лишь исходными данными. При этом исходные данные могут выбираться из некоторой области, называемой областью применимости алгоритма;

  • дискретность. Алгоритм должен быть разделен на отдельные элементарные акты;

  • результативность (конечность). Алгоритм должен приводить к решению задачи за конечное число шагов;

  • инвариантность по отношению к исполнителю. Алгоритм может оставаться неизменным при выполнении предписываемых им команд человеком или машиной любого типа.

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

Для решения любой относительно сложной задачи, как правило, могут быть разработаны несколько различных алгоритмов. Естественно, что следует выбрать лучший из них. Но когда мы говорим лучший, то всегда возникает вопрос: «С какой точки зрения лучший?»

Рассмотрим основные критерии качества алгоритма.

  • Связанность алгоритма определяется количеством промежуточных результатов, которые должны одновременно храниться в памяти. Естественно, что алгоритм тем лучше, чем его связность меньше, так как при этом уменьшается количество ячеек, занятых в оперативной памяти.

Пример. Рассмотрим численный пример вычисления величины:

х=25/5+45/5-100/5+50/5

Сравним два алгоритма решения этой задачи, учитывая, что каждая операция выполняется в арифметическом устройстве не более чем над двумя числами (операндами).

Алгоритм А

Алгоритм В

шаг

операция

результат

шаг

операция

результат

1

у1=25+45

70

1

у1=25/5

5

2

у2=70-100

-30

2

у2=45/5

9

3

у3=-30+50

20

3

у3=-100/5

-20

4

х4=20/5

4

4

у4=50/5

10

5

у5=5+9

14

6

у6=14-20

-6

7

х=-6+10

4

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

Таким образом, по связности алгоритм А значительно лучше. Кроме того, он еще и менее трудоемкий.

  • Объем алгоритма - это количество операций (шагов), которые необходимо выполнить для получения конечного результата. Чем меньше трудоемкость, т.е. чем меньше операций нужно предусмотреть на его написание и исполнение, тем выше качество алгоритма. Уменьшение количества шагов экономит не только время математика - составителя алгоритма, но и машинное время, сокращает длительность решения задачи на ЭВМ.

  • Длительность решения определяется количеством шагов алгоритма, а также сложностью этих шагов. Даже если все операции, как в примере выше, ограничиваются четырьмя арифметическими действиями, то все равно сказывается существенная разница во время их выполнения. Умножение и деление требуют затрат машинного времени в 3-4 раза больше, чем простейшие операции - сложение и вычитание

  • Разветвленность алгоритма характеризует логическую сложность и определяется количеством путей, по которым может реализовываться процесс вычислений. Значительная разветвленность увеличивает сложность алгоритма, а значит и трудоемкость его разработки.

  • Цикличность алгоритма заключается в том, что фактическое количество операций, которые должны быть выполнены в ходе вычислительного процесса, превышает количество операций, содержащихся в записи алгоритма. (Те или иные операции могут повторяться многократно – в цикле).