Heap sort is a sorting algorithm that uses a heap data structure. It has two main steps: 1) transforming the array into a max or min heap, and 2) performing the actual sort by extracting the largest/smallest element and transforming the remaining heap. Heap sort runs in O(n log n) time and uses O(1) constant memory, making it an efficient in-place sorting algorithm.