Что такое алгоритм

19 января 2021

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. В интернете очень часто встречается слово «алгоритм», и для многих оно является загадкой.

Разберемся на понятных и простых примерах с понятием алгоритма (что такое), а также с его видами и применением.

Кубик-Рубика

Алгоритм — это...

Алгоритмы окружают нас повсюду. По их принципам существует животный мир, люди, работают компьютеры и механизмы. Некоторые из них очевидны, другие же скрыты от глаз (но это не значит, что их нет).

Алгоритм в информатике — это последовательность действий, которая направлена на достижение окончательного решения проблемы наиболее оптимальными и эффективными способами.

Существует версия, что термин алгоритм произошел от имени древнего ученого Аль-Хорезми, который написал трактат «Книга о сложении и вычитании».

Позднее один из переводчиков на латинский язык неправильно перевел имя ученого и вынес его в название книги — «Алгоритмии о счете индийском». Так этот термин проник в европейские языки и закрепился в них.

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

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

Алгоритм это..

Конечно, животное, ищущее корм, не подозревает, что использует алгоритмы, но действует по определенным правилам (инстинктам), чтобы добыть пропитание:

  1. животное ищет место, где есть корм (используя обоняние и другие органы чувств);
  2. затем осуществляет действия, чтобы добраться до лакомства;
  3. при удачном исходе съедает найденное.

В информатике и программировании алгоритмы используются для написания программ (что это такое?). Чем качественнее алгоритмы, используемые в программе, тем лучше она работает.

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

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

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

Линейный алгоритм — это последовательное выполнение инструкций в строгой очередности их расположения (пример, «сделать бутерброд с сыром»).

Последовательность действий:

  1. взять кусок хлеба;
  2. отрезать кусок сыра;
  3. положить его на хлеб.

Ветвления — последовательность действий в соответствии с определенными условиями (если одно условие, то выполняется действие 1, если другой условие, то выполняется действие 2);

Пример: Если идет сильный дождь, тогда возьми зонт, а иначе брать зонт не нужно.

В большинстве случаев слово «иначе» опускается, так как из контекста первой части фразы уже понятна дальнейшая логика.

Пример: Если хотите сообщить что-то важное, позвоните по телефону (в данном случае, очевидно, что если сообщение неважное, то звонить не нужно).

Циклические алгоритмы — это последовательность действий, которую необходимо повторять несколько раз для достижения положительного результата («проверка груш на гнилые и не гнилые»).

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

  1. взять из ящика грушу;
  2. посмотреть, гнилая она или нет;
  3. если гнилая, то выбросить;
  4. если нет, положить в другой ящик;
  5. повторить операцию до перебора всех груш в ящике.

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

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

В языках программирования существуют различные виды алгоритмов для решения определенных задач.

К основным видам, которые должен знать каждый начинающий программист, можно отнести те, которые используют методы сортировки и поиска.

Все, что нас окружает построено именно на этих алгоритмах, они считаются простыми для понимания.

Где применяют алгоритмы

В математических науках и информатике это поиск эффективного решения поставленной задачи с использованием инструментов и средств.

Например, даже при решении простой задачки (2 * 6) используются определенные методы и инструменты для получения правильного результата. Самое интересное заключается в том, что ее можно решить несколькими способами: использовав листок и ручку, посчитав на компьютере или выполнив умножение в уме. Наиболее эффективный способ решения этой задачи и будет лучшим алгоритмом в данном случае.

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

Задача продавца (коммивояжера)

Существуют более интересные примеры для понимания сложности функционирования алгоритмов. Например, задача коммивояжера.

Дано: одному продавцу необходимо посетить четыре города: например, Москву, Берлин, Лондон, и Сан-Франциско. Продать там товар, а затем вернуться обратно.

Путь

Решение задачи выглядит простым. Сначала из Москвы поехать в Берлин, затем посетить Лондон, а потом отправиться в Сан-Франциско и вернуться в Москву.

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

Но если увеличить количество городов (например, до 100), то компьютер не сможет решить эту задачу, так как вариантов будут миллионы, а на решение понадобится несколько веков.

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

Машина Тьюринга — это основа для понимания алгоритмов

Это абстрактная машина, которую придумал Алан Тьюринг, известный британский ученый. Гениальность этого автомата состоит в следующем. Есть некая лента, состоящая из множества отдельных (бесконечных) ячеек, в которых содержатся данные или биты (0 и 1). Есть считывающее устройство, имеющее доступ к ленте.

Машина Тьюринга

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

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

Это аксиома, постулат, которые невозможно доказать математическим методом, так как алгоритм — это не точное математическое понятие.

Заключение

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

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

Изучаете, осваивайте, применяйте алгоритмы. Надеемся, что наша статья помогла вам в этом!

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Комментарии и отзывы (7)

Владимир

Даже не прочитав статью, а прочитав название, сразу ответил правильно на вопрос. Алгоритм — это реально любая последовательность действий, которая позволит достичь цели.

Можно представить даже поход на работу в виде алгоритма. Если вышли вовремя, то идем на трамвай допустим, если опаздываем, то вызываем такси, если погода хорошая, то берем зонтик / не берем и т.д.

Все программирование в принципе построено на алгоритмах.

Михаил

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

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

Виталий

В широком смысле, алгоритм - это заранее отработанная схема чего-то. Программы, работы устройства, выполнения каких-то задач. Сразу приходят на ум рабочие моменты из жизни следователей Уголовного розыска)) На совещании у руководства:

— «Так значит, товарищ Орлов, Вы уверены в том что эта группа имеет огнестрельное оружие? Давайте продумаем алгоритм, как будем действовать при задержании».

Максим

Я бы не сказал, что бесконечный цикл в программировании нужно избегать, тут всё от задумки программиста зависит. Если мы хотим, чтобы программа начиналась снова и снова, то тут и нужен бесконечный цикл, а выход из него можно предусмотреть с помощью ветвления if и else и оператора break.

Егор

Для успешного программирования нужно обладать хорошей логикой, ведь любой алгоритм опирается на логику, а не существует сам по себе.

Владимир

Я заметил, что многие алгоритмы я не пропускаю через своё сознание, а выполняю их на уровне рефлекса, к примеру, сначала надеваю кофту, а на неё уже куртку, а не наоборот. Все простые алгоритмы именно так и выполняются, без включения осознанности.

Николай

Блок-схема — это слишком общий алгоритм, с его помощью можно понять лишь самую общую логику работы программы. Для написания программы этой схемы недостаточно.

Представьтесь, пожалуйста:

* Нажимая на кнопку "Добавить комментарий" или "Подписаться" Вы соглашаетесь с политикой конфиденциальности.

Поделиться в соцсетях

Поиск по сайту