堆排序是通過利用堆數據結構來進行排序的一種算法。堆數據結構是一種完全二叉樹,其中每個節點的值都大于等于(或小于等于)其子節點的值。在堆排序中,首先將數據構建成一個最大堆(或最小堆),然后將堆頂元素與最后一個元素交換位置,并將堆的大小減一,然后對堆進行調整使其重新成為一個最大堆(或最小堆),重復這個過程直到堆的大小為1,最終得到一個有序的數組。因此,堆排序依賴于堆數據結構的性質來實現排序算法。