Heap sort is a sorting algorithm that uses a binary heap data structure. It has two variants - max heap sort and min heap sort. It works by first arranging elements in a binary heap, then removing the maximum/minimum element and inserting it into the sorted position. This process is repeated until all elements are sorted. Heap sort has a time complexity of O(n log n) and is suitable for scenarios like sorting products by price or cities by population.