The document discusses the Max-Heapify algorithm. It begins by defining the max-heap property, which requires that each parent node is greater than or equal to its children nodes. It then describes the Max-Heapify algorithm, which takes an array that violates the max-heap property at a given node i, and rearrange the subtrees to satisfy the property. It runs in O(log n) time and works by comparing the given node to its children, exchanging if needed, and recursively applying the same process down the tree. Examples are provided to demonstrate how Max-Heapify is applied.