Алгоритм на псевдокоде

Построение (L,R)-пирамиды

aL+1,…,a R – на входе пирамида (L+1,R)

aL –новый элемент

x:= aL, i:=L

DO

j:=2i

IF (j>R) OD

IF((j<R) и (aj+1£ aj)) j=j+1 FI

IF (x£aj) OD

ai= aj

i:=j

OD

ai:=x

Величины М и С в процессе построения (L, R)-пирамиды имеют следующие оценки Mпир≤log (R/L)+2, Cпир≤2 log (R/L)

Пирамидальная сортировка производится в два этапа. Сначала строится пирамида из элементов массива. По свойству (3) правая часть массива является (n/2+1, n)-пирамидой. Будем добавлять по одному элементу слева, расширяя пирамиду, пока в неё не войдут все элементы массива. Тогда по свойству (2) первый элемент последовательности – минимальный.

Произведём двустороннее усечение: уберём элементы a1,an. По свойству (1) оставшаяся последовательность является (2, n-1)-пирамидой. Элемент a1 поставим на последнее место, а элемент an добавим к пирамиде a2,…,an-1 слева. Получим новую (1, n-1)-пирамиду. В ней первый элемент является минимальным. Поставим первый элемент пирамиды на позицию n-1, а элемент an-1 добавим к пирамиде a2,…,an-1, и т.д. В результате получим обратно отсортированный массив.

Пример. Отсортировать слово методом пирамидальной сортировки.