Compare commits
2 Commits
65a9ba8fdb
...
cd6c8973da
| Author | SHA1 | Date | |
|---|---|---|---|
| cd6c8973da | |||
| db7976f65a |
@@ -25,6 +25,7 @@
|
||||
- [x] Kadane's Algorithm
|
||||
- [x] Euclidean gcd
|
||||
- [x] Fibonacci
|
||||
- [x] Heap Sort
|
||||
- [ ] Modular Arithmetic
|
||||
- [ ] Sieve of Eratosthenes
|
||||
- [x] BFS Breadth-First Search
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user