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

Алгоритм — это...
Алгоритмы окружают нас повсюду. По их принципам существует животный мир, люди, работают компьютеры и механизмы. Некоторые из них очевидны, другие же скрыты от глаз (но это не значит, что их нет).
Алгоритм в информатике — это последовательность действий, которая направлена на достижение окончательного решения проблемы наиболее оптимальными и эффективными способами.
Существует версия, что термин алгоритм произошел от имени древнего ученого Аль-Хорезми, который написал трактат «Книга о сложении и вычитании».
Позднее один из переводчиков на латинский язык неправильно перевел имя ученого и вынес его в название книги — «Алгоритмии о счете индийском». Так этот термин проник в европейские языки и закрепился в них.
Существуют сложные и легкие алгоритмы. Для решения одних не требуется усилий, а для других не хватит и всей мощности компьютеров.
Любые действия, предполагающие определенную последовательность в жизни животных и людей, можно назвать алгоритмом (поиск пищи для животного, поход в магазин за хлебом).
Конечно, животное, ищущее корм, не подозревает, что использует алгоритмы, но действует по определенным правилам (инстинктам), чтобы добыть пропитание:
- животное ищет место, где есть корм (используя обоняние и другие органы чувств);
- затем осуществляет действия, чтобы добраться до лакомства;
- при удачном исходе съедает найденное.
В информатике и программировании алгоритмы используются для написания программ . Чем качественнее алгоритмы, используемые в программе, тем лучше она работает.
Когда вы начинаете изучать любой язык программирования, то первое, что вам объясняют — это принципы построения алгоритма для будущей программы. Это такие блок-схемы, которые наглядно покажут ход обработки данных и логику вычислений. Без них поначалу будет очень трудно писать программы.
Как все это делается и выглядит на практике отлично показано на приведенном выше видео. Не буду повторяться, а лишь настоятельно посоветую потратить десять минут на его просмотр.
Виды и типы алгоритмов
Линейный алгоритм — это последовательное выполнение инструкций в строгой очередности их расположения (пример, «сделать бутерброд с сыром»).
Последовательность действий:
- взять кусок хлеба;
- отрезать кусок сыра;
- положить его на хлеб.
Ветвления — последовательность действий в соответствии с определенными условиями (если одно условие, то выполняется действие 1, если другой условие, то выполняется действие 2);
Пример: Если идет сильный дождь, тогда возьми зонт, а иначе брать зонт не нужно.
В большинстве случаев слово «иначе» опускается, так как из контекста первой части фразы уже понятна дальнейшая логика.
Пример: Если хотите сообщить что-то важное, позвоните по телефону (в данном случае, очевидно, что если сообщение неважное, то звонить не нужно).
Циклические алгоритмы — это последовательность действий, которую необходимо повторять несколько раз для достижения положительного результата («проверка груш на гнилые и не гнилые»).
Пример: В одном ящике лежат груши, необходимо отобрать гнилые и хорошие. Для этого совершаем следующие действия:
- взять из ящика грушу;
- посмотреть, гнилая она или нет;
- если гнилая, то выбросить;
- если нет, положить в другой ящик;
- повторить операцию до перебора всех груш в ящике.
Иногда случаются ситуации, когда цикл начинает бесконечно повторяться. Это называется зацикливанием или бесконечный цикл.
Это происходит в том случае, когда условие не может быть выполнено, тогда цикл замыкается в бесконечное повторение. Стоит отметить, что таких ситуаций следует избегать.
В языках программирования существуют различные виды алгоритмов для решения определенных задач.
К основным видам, которые должен знать каждый начинающий программист, можно отнести те, которые используют методы сортировки и поиска.
Все, что нас окружает построено именно на этих алгоритмах, они считаются простыми для понимания.
Где применяют алгоритмы
В математических науках и информатике это поиск эффективного решения поставленной задачи с использованием инструментов и средств.
Например, даже при решении простой задачки (2 * 6) используются определенные методы и инструменты для получения правильного результата. Самое интересное заключается в том, что ее можно решить несколькими способами: использовав листок и ручку, посчитав на компьютере или выполнив умножение в уме. Наиболее эффективный способ решения этой задачи и будет лучшим алгоритмом в данном случае.
Но такие простые примеры не очень интересны для любителей информатики. Есть гораздо более захватывающие проблемы, волнующие умы многих программистов, и над их решением бьются ученые всего мира.
Задача продавца (коммивояжера)
Существуют более интересные примеры для понимания сложности функционирования алгоритмов. Например, задача коммивояжера.
Дано: одному продавцу необходимо посетить четыре города: например, Москву, Берлин, Лондон, и Сан-Франциско. Продать там товар, а затем вернуться обратно.

Решение задачи выглядит простым. Сначала из Москвы поехать в Берлин, затем посетить Лондон, а потом отправиться в Сан-Франциско и вернуться в Москву.
На самом деле это сложный для компьютера алгоритм. В этих 4-х вариантах скрыто 24 различных комбинаций путешествия для решения задачи. Компьютер высчитывает расстояние от одного города до другого, затем сравнивает варианты и выдает решение.
Но если увеличить количество городов (например, до 100), то компьютер не сможет решить эту задачу, так как вариантов будут миллионы, а на решение понадобится несколько веков.
Но самым интересным является то, что, поняв принцип решения подобной задачи, его можно распространить на все подобные, что расширит знания в области информатики и других наук.
Машина Тьюринга — это основа для понимания алгоритмов
Это абстрактная машина, которую придумал Алан Тьюринг, известный британский ученый. Гениальность этого автомата состоит в следующем. Есть некая лента, состоящая из множества отдельных (бесконечных) ячеек, в которых содержатся данные или биты (0 и 1). Есть считывающее устройство, имеющее доступ к ленте.

В процессе движения устройство снабжено определенными инструкциями, получает доступ к ячейкам, считывает информацию и шагает дальше. Но машина может изменять свои действия, записать другую информацию или передвигаться то в одну, то в другую сторону (на основе стека внутренних инструкций).
В результате исследований таких машин Тьюрингом выдвинута гипотеза о том, что алгоритм при нахождении значений некоторой функции, которая задана в области алфавита, только тогда существует, когда данная функция вычисляется на машине Тьюринга.
Это аксиома, постулат, которые невозможно доказать математическим методом, так как алгоритм — это не точное математическое понятие.
Заключение
Изучение алгоритмов — это важная часть в понимании работы компьютеров. Оно позволяет узнать, как компьютер функционирует, как принимает, обрабатывает данные и выдает необходимый результат.
Понимание принципов работы поможет лучше овладеть компьютерными языками, так как, владея принципами построения и создания эффективных алгоритмов, можно изучить любой язык программирования (как алфавит в иностранных языках).
Изучаете, осваивайте, применяйте алгоритмы. Надеемся, что наша статья помогла вам в этом!
Комментарии и отзывы (8)
Даже не прочитав статью, а прочитав название, сразу ответил правильно на вопрос. Алгоритм — это реально любая последовательность действий, которая позволит достичь цели.
Можно представить даже поход на работу в виде алгоритма. Если вышли вовремя, то идем на трамвай допустим, если опаздываем, то вызываем такси, если погода хорошая, то берем зонтик / не берем и т.д.
Все программирование в принципе построено на алгоритмах.
Чтобы разобраться с алгоритмами в написании программ нужно иметь хорошо развитое логическое мышление, для программиста главное орудие — это не математика, а именно логика.
Проблема ведь и кроется в том, что поменяв местами две инструкции, синтаксис языка программирования не будет нарушен, но будет нарушена логика, и это нарушение компилятор спокойно пропустит. Вот из-за таких логических ошибок и появляются баги в программах.
В широком смысле, алгоритм - это заранее отработанная схема чего-то. Программы, работы устройства, выполнения каких-то задач. Сразу приходят на ум рабочие моменты из жизни следователей Уголовного розыска)) На совещании у руководства:
— «Так значит, товарищ Орлов, Вы уверены в том что эта группа имеет огнестрельное оружие? Давайте продумаем алгоритм, как будем действовать при задержании».
Я бы не сказал, что бесконечный цикл в программировании нужно избегать, тут всё от задумки программиста зависит. Если мы хотим, чтобы программа начиналась снова и снова, то тут и нужен бесконечный цикл, а выход из него можно предусмотреть с помощью ветвления if и else и оператора break.
Для успешного программирования нужно обладать хорошей логикой, ведь любой алгоритм опирается на логику, а не существует сам по себе.
Я заметил, что многие алгоритмы я не пропускаю через своё сознание, а выполняю их на уровне рефлекса, к примеру, сначала надеваю кофту, а на неё уже куртку, а не наоборот. Все простые алгоритмы именно так и выполняются, без включения осознанности.
Блок-схема — это слишком общий алгоритм, с его помощью можно понять лишь самую общую логику работы программы. Для написания программы этой схемы недостаточно.
Понятие алгоритма это. Алго. Вычисление Ритм Движение . значит алгоритм вычисление в движении ... от АЛБ пользуйтесь ...
Ваш комментарий или отзыв