Heap sort uses a heap data structure that maintains the max-heap or min-heap property. It involves two main steps: 1) building the heap from the input array using the BUILD-MAX-HEAP procedure in O(n) time, and 2) repeatedly extracting the maximum/minimum element from the heap and inserting it into the sorted portion using the DELHEAP procedure, running in O(n log n) time overall. The key operation is MAX-HEAPIFY, which maintains the max-heap property in O(log n) time during heap operations like insertion and deletion.