小根堆
几个注意点:
- 我们使用Less比较的时候决定了大根堆或小根堆
- push以及pop需要传入指针,因为涉及到改动。
- pop的时候需要删除最后一个,因为我们是append自己模拟进去的
- 我们自己用堆加入元素的时候需要使用heap中的方法来加入元素
heap.push()
和删除元素heap.pop()
- 如果我们自己想要查看堆顶,切片中索引为0对应的元素就是堆顶
1 | minHeap := &MinHeap{} |
1 | type MinHeap []int |
大根堆
同小根堆,改变Less实现方法即可
1 | type MaxHeap []int |