heap sort
Go / build (push) Successful in 23s

new file:   trees/heap/heapAlgorithms.go
This commit is contained in:
Acid
2026-07-13 23:35:34 -04:00
parent db7976f65a
commit cd6c8973da
+30
View File
@@ -0,0 +1,30 @@
package heap
import (
"cmp"
)
// HeapSrort() -> takes in an array and returns it sorted. O(n log n)
func HeapSrort[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
}