24 lines
489 B
C++
24 lines
489 B
C++
#pragma once
|
|
|
|
#include "../data_structures/heap.hpp"
|
|
|
|
namespace dlos {
|
|
|
|
template<typename T, size_t N>
|
|
void heapsort(std::array<T, N> &a) {
|
|
dlos::Heap<T, N> heap = dlos::Heap<T, N>(a);
|
|
heap.maxHeap();
|
|
heapsort(heap);
|
|
}
|
|
|
|
template<typename T, size_t N>
|
|
void heapsort(Heap<T, N> &heap) {
|
|
for (int i = heap.size - 1; i > 0; i--) {
|
|
heap.nodeSwap(0, i);
|
|
heap.size -= 1;
|
|
heap.siftDown(0);
|
|
}
|
|
}
|
|
|
|
}
|