Залог успешного прохождения собеседования на большинство образовательных программ ЕРАМ – это знание алгоритмов. Поэтому в этой вводной статье речь пойдёт именно о них. Тема алгоритмов очень обширная, однако, мы попробуем разобраться в основах алгоритмов, понять, что это такое, почему так важно понимать, как работают алгоритмы, и где они используются. Читайте нашу новую статью, чтобы точно освоить необходимую базу и пройти собеседование!
Определение
Определение алгоритма очень простое и понятное, хотя и скрывает за собой чуть ли не весь смысл бытия :)
Алгоритм – это набор команд, необходимых для решения определённых задач.
Вроде всё просто и понятно. Даже для похода в магазин можно написать алгоритм и если он будет написан хорошо, то ты успешно вернёшься домой с покупками.
Но давайте разберёмся, а что значит «написан хорошо»? Какими характеристиками должен обладать такой алгоритм?
Характеристики алгоритма
Большинство характеристик алгоритмов применимы как для выполнения сортировки чисел в массиве, так и для указанного выше похода в магазин.
Цель алгоритма — это определяющее свойство алгоритма.
Цель алгоритма как раз скажет нам, для чего мы можем применять указанный алгоритм, будь то сортировка чисел в массиве, сжатие данных или указанный выше поход в магазин. Очевидно, следует подбирать алгоритм, который лучше всего подходит для решения поставленной задачи.
Точность алгоритма
Важно понимать, что не все задачи требуют получения верного ответа с вероятностью равной 1. Для некоторых задач могут подойти алгоритмы, которые дают оценку вероятности того или иного события, либо приблизительное значение. Гораздо важнее будет получить приблизительный ответ быстро, нежели тратить дни, недели или годы на получение точного значения.
Скорость алгоритма
Она показывает не только среднюю скорость работы алгоритма, но и возможное изменение скорости работы алгоритма в зависимости от количества входных данных.
Методы построения алгоритма
Существуют различные методы построения алгоритмов: метод декомпозиции, метод последовательных приближений, метод случайного поиска и т. д. Знания методов построения алгоритмов может также помочь в качестве отправной точки при написании собственного алгоритма.
Сложность алгоритма
Да, самое сладкое мы оставили напоследок :) Одной из важнейших характеристик алгоритмов является сложность. Основным показателем сложности алгоритма является время, необходимое для решения задачи и объём требуемой памяти. Оценка сложности — это очень важная тема и её нужно хорошо понимать. Поэтому следующая статья будет полностью посвящена оценке сложности алгоритмов, там же будут раскрыты все тайны, которые хранит в себе О-символика.
P.S. Если эта статья была для тебя полезной, ставь 👍 и делись ей со своими друзьями!
Продолжение уже опубликовано здесь.