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

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

Давайте посмотрим понятные и простые примеры с понятием алгоритма (что это такое), а также с его видами и приложениями.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

Поделиться:
×
Рекомендуем посмотреть