Heap sort is a comparison-based sorting technique that uses a binary heap data structure. It works by first transforming the input array into a max-heap, where the root contains the largest value. It then removes the maximum element from the heap and places it at the end of the sorted array. This process is repeated until the heap is empty. Heap sort has a time complexity of O(n log n) and space complexity of O(1), making it an efficient in-place sorting algorithm.