Метод heapify переставляет элементы массива, где левое и правое поддерево i- го элемента подчиняется свойству heap.
Algorithm: Max-Heapify(numbers[], i) leftchild := numbers[2i] rightchild := numbers [2i + 1] if leftchild ≤ numbers[].size and numbers[leftchild] > numbers[i] largest := leftchild else largest := i if rightchild ≤ numbers[].size and numbers[rightchild] > numbers[largest] largest := rightchild if largest ≠ i swap numbers[i] with numbers[largest] Max-Heapify(numbers, largest)
Когда предоставленный массив не подчиняется свойству heap, Heap создается на основе следующего алгоритма Build-Max-Heap (numbers []) .