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



Поэтому сегодня разберемся с тем, что это и какие они бывают.



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



Bubble sort, или пузырьковая сортировка. Сравнивает каждый текущий элемент массива со следующим. И сдвигает наибольший к концу массива. В итоге все элементы выстраиваются в порядке возрастания. То есть, чем больше элемент-«пузырек», тем выше он «всплывает».



Comb sort. Похожа на пузырьковую сортировку, но сравнивает элементы, стоящие на некотором расстоянии друг от друга. То есть, можно считать, что в Bubble sort это расстояние равно 1, а в Comb sort — оно умножено на некий коэффициент.



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



Merge sort. Похожа на Quicksort, но сразу делит массив на части, которые рекурсивно сортирует. А затем сравнивает текущие элементы, выявляет наименьшие и сливает все это обратно в единый массив.



Знание методов и изучение их на практике позволит HRу лучше оценить ваши навыки и понять, как вы подходите к решению задачи 😉