Интернет

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

Алгоритм — это набор инструкций. Определение действительно так просто. Алгоритм может быть таким же простым, как и давать такие инструкции:

  1. Идите по улице.
  2. Поверни направо на первом повороте.
  3. Найдите второй дом слева.
  4. Стучать в дверь.
  5. Доставить посылку.

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

Сломать алгоритм 

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

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

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

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

Как развивались алгоритмы сортировки

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

Этот тип алгоритма может выглядеть так просто:

  1. Перейти к первому значению
  2. Сравните это значение со следующим значением и поменяйте местами, если необходимо.
  3. Перейти к следующему значению и повторить сравнение.
  4. Если мы находимся в конце списка, вернитесь к началу, если какое-либо значение было поменяно местами во время цикла.

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

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

Это где алгоритмы могут стать действительно сумасшедшими. Или действительно интересно, в зависимости от того, как вы на это смотрите.

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

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

Что мы узнаем из алгоритма пузырьковой сортировки

  • Алгоритмы развиваются с течением времени, так как мы находим более эффективные способы выполнения задач и / или компьютеры становятся более способными выполнять сложные задачи. 
  • Алгоритмы иногда выбираются потому, что они «более» эффективны «большую часть времени.
  • Тот факт, что алгоритм в большинстве случаев более эффективен, не означает, что он всегда лучший в каждом конкретном случае.

Алгоритмы Facebook и многое другое в повседневной жизни

Алгоритмы на работе помогают людям каждый день. Когда вы ищете в Интернете , алгоритм работает, пытаясь найти лучшие результаты поиска. Спросите у своего смартфона, как проехать, и алгоритм определит оптимальный маршрут для вас. И когда вы просматриваете Facebook , алгоритм решает, какие из сообщений нашего друга в Facebook наиболее важны для нас. (Будем надеяться, что наши друзья не узнают, какой Facebook считает, что нам нравится больше всего!)

Пример простого алгоритма

Но алгоритмическое мышление может помочь нам далеко за пределами нашей компьютерной жизни. Это может даже помочь нам построить лучший бутерброд.

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

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

Похожие посты
Интернет

Google Store Лучшие предложения

Интернет

Руководство по специальному режиму в сети

Интернет

10 советов по безопасности беспроводной домашней сети

Интернет

САН против НАН