Виды алгоритмов и типы их схем | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Алгоритмы и структуры данных Team Lead Архитектура и шаблоны проектирования Разработчик IoT C# Developer. Professional PostgreSQL Разработчик на Spring Framework
-5%
Flutter Mobile Developer NoSQL iOS Developer. Basic
-10%
C++ Developer. Basic C++ Developer. Professional Android Developer. Professional Microservice Architecture Unity Game Developer. Professional Базы данных Node.js Developer React.js Developer Специализация Java-разработчик
-25%
Web-разработчик на Python Framework Laravel Cloud Solution Architecture Vue.js разработчик Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool" PHP Developer. Basic
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK Administrator Linux. Professional Дизайн сетей ЦОД Разработчик IoT PostgreSQL Экспресс-курс "Версионирование и командная работа с помощью Git"
-30%
Microservice Architecture Highload Architect Специализация Administrator Linux
-25%
Network engineer Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool" Network engineer. Basic
Корпоративные курсы
Безопасность веб-приложений IT-Recruiter Дизайн сетей ЦОД Компьютерное зрение Разработчик IoT Вебинар CERTIPORT Machine Learning. Professional
-6%
NoSQL Пентест. Практика тестирования на проникновение Java QA Engineer. Базовый курс Руководитель поддержки пользователей в IT
-8%
SRE практики и инструменты Cloud Solution Architecture Внедрение и работа в DevSecOps Супер-практикум по работе с протоколом BGP Infrastructure as a code Супер-практикум по использованию и настройке GIT Промышленный ML на больших данных Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes» BPMN: Моделирование бизнес-процессов Основы Windows Server
Специализации Курсы в разработке Подготовительные курсы Подписка
+7 499 938-92-02

Виды алгоритмов и типы их схем

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

Блок-схема

Алгоритмы бывают разные, но прежде чем приступить к рассмотрению их видов, следует рассказать об основном способе визуализации алгоритмической последовательности — созданию блок-схемы. Такие схемы состоят из соответствующих функциональных блоков, которые связаны между собой. Каждый блок отвечает за выполнение какого-нибудь действия. Для каждого типа действия определён конкретный блок, представляющий собой геометрическую фигуру.

Существует и очередность выполнения действий — она определяется линиями, которые соединяют блоки. По умолчанию используемые в схеме блоки соединяются слева направо и сверху вниз. В случае другой последовательности выполнения, блоки соединяются направленными линиями (речь идёт о линиях, оснащённых стрелками).

Типы и назначение блоков алгоритма можно посмотреть в таблице ниже:

2019_06_18_11_26_01_768x1074_1-1801-9a9596.jpg

Теперь рассматривать виды алгоритмов будет гораздо понятнее.

Виды алгоритмов

Алгоритмы бывают: — линейные – подразумевается последовательное выполнения операций (команд, указаний), то есть выполнение действий происходит друг за другом. Вот, как это выглядит на схеме с блоками:

Рисунок11_1-1801-19ebfe.png

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

Рисунок12_1-1801-800bb7.png

циклические – данным алгоритмом предусмотрено многократное повторение определенной последовательности действий (речь идёт об одинаковых операциях). Здесь число повторений будет обусловлено либо условием задачи, либо исходными данными.

Рисунок13_2-1801-55bd0e.png

Также стоит добавить, что любая алгоритмическая конструкция способна включать в себя какую-нибудь другую конструкцию того либо иного вида, то есть алгоритмы бывают вложенными.

Способы описания алгоритмов

О блок-схеме, как об основном способе представления алгоритмов, мы уже поговорили. Но кроме блоков, есть и другие методы:

  1. Словесное описание — это когда структура алгоритма описывается естественным языком. Лучше всего вспомнить любой бытовой прибор (утюг, телевизор, микроволновую печь, холодильник и т. п.). Все эти приборы имеют инструкцию по эксплуатации, то есть перед нами типичное описание алгоритма словами, с учётом которых прибором надо пользоваться. Такой способ не формализован и не учитывает все возможные ситуации, возникающие при эксплуатации. К недостаткам словесного описания относят и неоднозначность толкования некоторых терминов.
    Представьте, что вы куда-то собрались, и вас интересует погода на улице. Словесное описание будет приблизительно таким: 1) смотрим на градусник, определяем температуру на улице; 2) если температура ниже 0, надеваем шубу, если выше — куртку.
  2. Псевдокод — в этом случае можно говорить о естественном и частично формализованном языке, то есть это описание уже позволяет определить главные этапы решения задачи, что необходимо перед составлением программы — точной записи на языке программирования. Псевдокод характеризуется уже наличием формализованных конструкций и общепринятой математической символикой, однако строгих синтаксических правил по записи не существует.
  3. Блок-схема. Схему, состоящую из блоков и линий, включая значения наиболее часто используемых блоков, уже рассмотрели выше. Но вернёмся к нашему примеру с погодой: Рисунок1_1-1801-696d27.png
  4. Программа — описание, созданное на языке алгоритмического программирования. Такой вариант характеризуется высокой степенью формализации, то есть появление программы позволяет решать прикладные задачи. В форме программы описываемый ранее пример будет выглядеть следующим образом:

Screenshot_2-1801-a10d22.png

Algo_970x90-1801-545cb2.png

Источники: • https://www.sites.google.com/site/algoritmyvidyisvojstva/materialy/sposoby-opisania-vidy-algoritmov; • https://uchitel.pro/алгоритм-свойства-алгоритмов/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться