Располагаем элементы, не большие разделителя, в левом подмассиве, а не меньшие — в правом подмассиве.
Если число элементов в левом подмассиве больше 1, то применяем к нему алгоритм в целом, иначе конец алгоритма.
Если число элементов в правом подмассиве больше 1, то применяем к нему алгоритм в целом, иначе конец алгоритма.
Пункт 2 алгоритма выполняется следующим образом. Просматриваем массив слева и находим элемент, не больший разделителя. Затем просматриваем массив справа и находим элемент, не меньший разделителя. Выполняем обмен найденных элементов. Просмотр заканчивается, когда индекс первого найденного элемента превысит индекс второго найденного элемента. В результате получаем левый и правый подмассивы.
Пример.
Исходный массив (30 10 40 20 15 17 45 60)
Разделитель 30
После выполнения п.2 получаем следующие два подмассива:
(17 10 15 20) (40 30 45 60)
И так далее, пока выполнится условие окончания алгоритма, т.е. когда все подмассивы будут содержать по одному элементу.