Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
элементы теории алгоритмов.doc
Скачиваний:
12
Добавлен:
01.05.2025
Размер:
121 Кб
Скачать
☆
  1. Свойства алгоритмов

Мир алгоритмов очень разнообразен. Несмотря на это, удается выделить общие свойства, которыми обладает любой алгоритм.

Обычно мы выполняем привычные действия не задумываясь, механически. Например, вы хорошо знаете, как открыть дверь ключом. Однако, чтобы научить этому малыша, придется четко разъяснить и самим действия, и порядок их выполнения:

  1. Достать ключ из кармана.

  2. Вставить ключ в замочную скважину.

  3. Повернуть ключ два раза против часовой стрелки.

  4. Вынуть ключ.

Представьте, что вас пригласили в гости и подробно объяснили, как добраться:

  1. Выйти из дома.

  2. Повернуть направо.

  3. Пройти два квартала до остановки.

  4. Сесть в автобус №5, идущий к центру города.

  5. Проехать три остановки.

  6. Выйти из автобуса.

  7. Найти по указанному адресу дом и квартиру.

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

    1. Дискретность

Дискретность (от лат. discretus – разделенный, прерывистый). Это свойство указывает, что любой алгоритм должен состоять из конечных действий, следующих в определенном порядке. В приведенных выше алгоритмах общим является необходимость строгого соблюдения последовательности выполнения действий. Попробуем переставить в первом примере второе и третье действия. Вы, конечно, сможете выполнить и этот алгоритм, но дверь вряд ли откроется. А если поменять местами, предположим, пятое и второе действия во втором примере, алгоритм станет не выполнимым.

    1. Детерминированность

Детерминированность (от лат. determinate – определенность, точность). Это свойство указывает, что любое действие алгоритма должно быть строго и недвусмысленно определено в каждом случае. Например, если к остановке подходят автобусы разных маршрутов, то в алгоритме должен быть указан конкретный номер маршрута – 5. Кроме того, необходимо указать точное количество остановок, которое надо проехать, - скажем, три.

    1. Конечность

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

    1. Массовость

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

  1. Отрезать ломтик хлеба.

  2. Намазать его маслом.

  3. Отрезать кусок любого другого пищевого продукта (колбасы, сыра).

  4. Наложить отрезанный кусок на ломоть хлеба.

    1. Результативность

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

  1. Из числа А вычесть число В.

  2. Если получилось отрицательное значение, то сообщить, что число B больше.

  3. Если получилось положительное значение, то сообщить, что число А больше.

При всей простоте и очевидности алгоритма, не каждый сразу поймет его ошибочность. Ведь если оба числа равны, то не получится никакого общения. Значит, надо обязательно предусмотреть это вариант, например:

  1. Из числа А вычесть число В.

  2. Если получилось отрицательное значение, то сообщить, что число B больше.

  3. Если получилось положительное значение, то сообщить, что число А больше.

  4. Если получилось ноль, то сообщить, что числа равны.

Таким образом, для любого алгоритма характерны следующие свойства: дискретность, детерминированность, конечность, массовость, результативность.