Files
Acid 35592e1bb8
Go / build (push) Successful in 26s
moved heapSort to its own file
2026-07-24 03:57:15 -04:00

31 lines
393 B
Go

package heap
import (
"cmp"
)
// HeapSort() -> takes in an array and returns it sorted. O(n log n)
func HeapSort[T cmp.Ordered](arg []T) []T {
if len(arg) <= 0 {
return nil
}
heap := NewMinHeap[T]()
heap.Heapify(arg)
sorted := make([]T, 0, len(arg))
for range heap.Array {
val, ok := heap.PopMin()
if !ok {
break
}
sorted = append(sorted, val)
}
return sorted
}