github.com/zhiqiangxu/util@v0.0.0-20230112053021-0a7aee056cd5/rpheap/README.md (about) 1 # rpheap 2 3 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! 4 5 ```golang 6 7 package rpheap 8 9 import ( 10 "sort" 11 "testing" 12 13 "gotest.tools/assert" 14 "github.com/zhiqiangxu/rpheap" 15 ) 16 17 func TestRPHeap(t *testing.T) { 18 heap := rpheap.New() 19 numbers := []int{10, 4, 3, 2, 5, 1} 20 for _, number := range numbers { 21 rpheap.Insert(int64(number)) 22 } 23 24 sort.Ints(numbers) 25 26 for _, number := range numbers { 27 m := heap.DeleteMin() 28 assert.Assert(t, int64(number) == m, "number:%v m:%v", number, m) 29 } 30 31 assert.Assert(t, heap.Size() == 0, "heap not empty") 32 } 33 34 ```