Алгоритм, который реализует этот псевдокод, - это фаза разделения алгоритма быстрой сортировки . Он упорядочит массив так, что все значения, меньшие или равные A[p]
, будут слева, а все большие значения - справа. Он возвращает индекс j
, который является последним индексом левой стороны, для которого A[j]
равен A[p]
.
Если вы не знакомы с быстрой сортировкой, то намерены использовать этот алгоритм разбиения, чтобы разбить массив на «маленькие» и «большие» части и рекурсивно отсортировать каждую часть. Поскольку маленькие были расположены раньше больших в массиве, массив сортируется. Если p
выбран так, что A[p]
находится близко к середине значений в A
, это очень быстрый метод сортировки.