Реализация базовых алгоритмов на Go
Алгоритм состоит из трёх шагов:
- Выбрать элемент из массива, дальше по тексту он называется опорный.
- Разбиение: перераспределение элементов в массиве таким образом, что элементы, меньшие опорного, помещаются перед ним, а большие - после.
- Рекурсивно применить первые два шага к двум подмассивам слева и справа от опорного элемента. Рекурсия не применяется к массиву, в котором только один элемент или отсутствуют элементы.
В этой версии, опорным элементом всегда выбирается средний.
В таком варианте есть значительный минус, так как используется дополнительная память, чего можно избежать.