package
0.0.0-20230112053021-0a7aee056cd5
Repository: https://github.com/zhiqiangxu/util.git
Documentation: pkg.go.dev
# README
rpheap
An easy to use rank pairing heap, which takes O(1) for Insert
, FindMin
, Meld
, and O(log n) for DeleteMin
. Rank pairing heap is one of the most efficient heaps so far!
package rpheap
import (
"sort"
"testing"
"gotest.tools/assert"
"github.com/zhiqiangxu/rpheap"
)
func TestRPHeap(t *testing.T) {
heap := rpheap.New()
numbers := []int{10, 4, 3, 2, 5, 1}
for _, number := range numbers {
rpheap.Insert(int64(number))
}
sort.Ints(numbers)
for _, number := range numbers {
m := heap.DeleteMin()
assert.Assert(t, int64(number) == m, "number:%v m:%v", number, m)
}
assert.Assert(t, heap.Size() == 0, "heap not empty")
}