Свойства алгоритмов | OTUS
⚡Подписка от OTUS!
Собери свой пул курсов на выгодных условиях. Подробности в чате →
Написать в чат

Курсы

Программирование
Unity Game Developer. Basic
-15%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Разработчик C#
-8%
Алгоритмы и структуры данных
-8%
Backend-разработчик на PHP
-8%
JavaScript Developer. Professional
-9%
iOS Developer. Professional
-8%
Базы данных
-12%
C# ASP.NET Core разработчик
-6%
Python Developer. Basic
-10%
Java Developer. Professional Web-разработчик на Python Android Developer. Basic PostgreSQL Software Architect Reverse-Engineering. Professional Kotlin Backend Developer React.js Developer VOIP инженер Нереляционные базы данных Scala-разработчик Супер-практикум по использованию и настройке GIT IoT-разработчик JavaScript Developer. Basic Advanced Fullstack JavaScript developer Unity Game Developer. Professional Супер-интенсив Azure
Инфраструктура
Супер-интенсив "Версионирование и командная работа с помощью Git"
-30%
Administrator Linux. Professional
-5%
Супер-интенсив «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
Разработчик программных роботов (RPA) на базе UiPath и PIX
-6%
Administrator Linux. Advanced
-8%
Infrastructure as a code in Ansible
-12%
Network engineer
-4%
MS SQL Server Developer
-8%
Cloud Solution Architecture Highload Architect Разработчик голосовых ассистентов и чат-ботов Мониторинг и логирование: Zabbix, Prometheus, ELK Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Архитектор сетей Супер-интенсив «IaC Ansible»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

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

Статья расскажет о происхождении термина «Алгоритм» и о том, какими свойствами он обладает.

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

История возникновения термина

Сегодня это понятие является фундаментальным и в математике, и в информатике. Однако сам термин возник задолго до появления компьютеров и прочих электронных средств вычислительной техники. Впервые об алгоритме заговорили в средние века — именно тогда европейские ученые ознакомились с методами вычисления арифметических действий, производимых в десятичной системе счисления азиатским математиком по имени Мухаммед ибн Муса аль-Хорезми (от имени этого математика и сформировался термин Algorithm). Сочинение аль-Хорезми перевели, а в последующие столетия появилось много трудов, посвященных вопросу обучения искусству счёта посредством цифр. Можно вспомнить описание алгоритма в европейской науке в те годы:

Screenshot_1-1801-2aac07.png

Также значение слова «алгоритм» сегодня нередко связывают со значениями таких слов, как «рецепт», «метод», «процесс», «инструкция».

Исполнитель и программа

Судя по историческим справкам, изначально речь шла о способе выполнения арифметических действий над десятичными числами. Прошли годы. Понятие стали применять при обозначении любой последовательности действий, которая приводит к получению требуемого результата. Причем алгоритмы существуют не сами по себе — они предназначаются для конкретного исполнителя. Кто может выступать таким исполнителем: — человек; — роботизированное/автоматизированное устройство, механизм; — компьютер; — язык программирования и т. д.

Отличительная черта исполнителя — способность выполнять команды, которые включены в алгоритм. Это становится возможным, благодаря описанию последнего на формальном языке, который исключает неоднозначность толкования. Множество команд задано изначально строго и является конечным. Действия, которые должен выполнить исполнитель, называют элементарными действиями, а сама запись алгоритмической последовательности на формальном языке — это программа. Разработка алгоритма в целях решения задачи — это алгоритмизация.

Главные характеристики

Выделяют следующие свойства алгоритма: массовость, дискретность, результативность, определенность, понятность, формальность, завершаемость. Будет не лишним рассмотреть их более подробно, дав каждому свойству алгоритма пояснение: 1. Массовость (универсальность). Благодаря этому свойству, алгоритм можно успешно применять к различным наборам исходных данных. Пусть существует запись некой абстрактной последовательности, выраженная формулой. Подставляя в эту формулу значения (каждый раз новые), пользователь будет получать верные решения в соответствии с определенным алгоритмом действий. 2. Дискретность (разрывность). Это свойство характеризует структуру. Каждая алгоритмическая последовательность действий делится на этапы (шаги), а процесс решения задачи — это последовательное исполнение простых шагов. Также дискретность обозначает, что для выполнения каждого этапа потребуется конечный временной отрезок (исходные данные преобразуются во времени в результат дискретно). 3. Определенность (точность, детерминированность) — это свойство указывает алгоритму, что каждый его шаг должен быть строго определенным, то есть различные толкования должны быть исключены. Строго определяется и порядок выполнения шагов. В результате каждый шаг определяется состоянием системы однозначно, когда четко понятно, какая команда станет выполняться на следующем шаге. Как итог — при любом исполнителе для одних и тех же исходных данных при выполнении одной и той же цепочки команд будет выдаваться одинаковый результат. Да, существуют вероятностные алгоритмы — в них на последующий шаг влияют как текущее состояние системы, так и генерируемое случайное число. Но при включении способа генерации рандомных чисел в перечень «исходных данных», вероятностный алгоритм превращается в подвид обычного. 4. Понятность. Должны быть включены лишь те команды, которые доступны и понятны исполнителю, то есть входят в систему его команд. 5. Формальность. Любой исполнитель действует формально и лишь выполняет инструкции, не вникая в смысл. Он не отвлекается от поставленной задачи и не рассуждает, зачем и почему они нужны. Рассуждениями занимается разработчик алгоритма, задача же исполнителя — просто исполнить предложенные команды и получить результат. «Приказы не обсуждают, а выполняют». 6. Завершаемость (конечность). Если исходные данные заданы корректно, алгоритм завершит свое действие и выдаст результат за конечное число шагов. 7. Результативность. Согласно этому свойству, любой алгоритм должен завершаться конкретными результатами.

Основные виды алгоритмов

В информатике и программировании выделяют много видов алгоритмов. Основные из них: — линейные (команды выполняются последовательно, одна за одной); — разветвляющиеся (есть условие, при проверке которого возможно разветвление на несколько параллельных ветвей); — циклические (предусматривается многократное повторение одних и тех же действий).

Источники: • https://math-it.petrsu.ru/users/semenova/Informatika/DOC/Sam_Izuch/Algoritm.pdf; • https://www.sites.google.com/site/algoritmyvidyisvojstva/materialy/materialy-1.

Algo_970x90-1801-545cb2.png

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

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

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

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