Встречали это непонятное и явно иноземное по происхождению слово? Думаете, что оно как-то связано с математикой? Так давайте разберёмся, откуда оно взялось и что означает. А заодно — как связано с кодом.
История названия
Название “алгоритм” родственно слово “алгебра”, как ни странно и происходит от имени знаменитого среднеазиатского учёного IX столетия — математика, астронома и географа Абу Абдуллаха аль-Хорезми. Обратим внимание на последнюю часть его имени, от которой и происходят два упомянутых слова. Это указание места рождения и буквально означает “из Хорезма”. Так называлось древнее государство на территории современных Туркмении и Узбекистана. Основную же часть жизни аль-Хорезми провёл при дворе багдадского халифа.
Одним из важнейших трудов учёного стал “Трактат о восполнении и противопоставлении”, в котором, в частности, разбирались правила решения уравнений. В средневековой Европе алгоритмом стали называть способ счёта и записи чисел, аналогичный приведённому в трактате (со временем он стал общеупотребительным), а сильно позже — любое вычисление по строгим правилам.
By Mario Biondi writer - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=84202620
Суть алгоритма
Сейчас алгоритмом называют порядок действий для получения какого-то заранее определённого результата. Чаще это связано с математикой или точными науками — в юридической и деловой сфере чаще встречаются понятия конвенции, протокола или соглашения. Для простоты можно считать, что алгоритм состоит из некоторого числа инструкций, выполняемых строго одна за другой. Например, упрощённый алгоритм “сходить в магазин за хлебом”:
- Взять кошелёк с достаточной суммой денег.
- Выйти из дома.
- Дойти до магазина.
- Купить хлеб.
- Вернуться домой.
Как только появились компьютеры (электронные вычислители), алгоритмы очень пригодились для управления ими, став незаменимым средством перевода человеческих понятий на компьютерный язык. Программисты активно пользуются алгоритмами и по сей день — это, что называется, самая суть их профессии.
Что входит в алгоритм?
Во-первых, простые, то есть элементарные инструкции. Предполагается, что исполнителю не требуется дополнительных разъяснений, как их понимать. К примеру, “сложи два числа” — элементарная инструкция для любого, кто умеет считать.
Во-вторых, условные выражения. Поскольку алгоритмы всё-таки связаны с жизнью, они должны предусматривать варианты действий в зависимости от каких-то условий. Условные конструкции бывают разными, но чаще всего встречаются “если — то”, и “если — то — иначе”. В первом случае ряд инструкций выполняется, только если условие верно. Во втором предусмотрены отдельные указания на случай, когда оно неверно.
“ЕСЛИ будет белый хлеб, ТО купи его”. Исполнитель либо купит белый хлеб, либо не купит никакого.
“ЕСЛИ будет белый хлеб, ТО купи его. ИНАЧЕ купи чёрный”. Исполнитель купит либо белый хлеб, либо чёрный.
В-третьих, циклы. Они позволяют поочерёдно перебирать ряд каких-то элементов. Например, когда мы ищем какую-то вещь, открываем ПО ОЧЕРЕДИ ВСЕ ящики, тумбочки и шкафы, ПОКА не найдём.
В-четвёртых, под-алгоритмы. В программировании они называются подпрограммами, процедурами или методами. Они используются в ситуации, когда действие требует отдельного объяснения, но разбирать его в основном алгоритме не имеет смысла (он слишком усложняется). Например, в алгоритме решения квадратного уравнения есть вычисление дискриминанта, который считается по отдельной формуле. Можно оставить “вычислить дискриминант” в основном алгоритме, а расчёты по формуле вынести в отдельный.
Так работают алгоритмы. Надеюсь, вам было понятно и интересно. С вами был Алексей, подписывайтесь на канал!