堆 堆排序 优先队列 图文详解(Golang实现)
引入在实际应用中,我们经常需要从一组对象中查找 最大值 或 最小值 。当然我们可以每次都先排序,然后再进行查找,但是这种做法效率很低。哪么有没有一种特殊的数据结构,可以高效率的实现我们的需求呢,答案就是 堆(heap)堆分为最小堆和最大堆,它们的性质相似,我们以最小堆为例子。
引入在实际应用中,我们经常需要从一组对象中查找 最大值 或 最小值 。当然我们可以每次都先排序,然后再进行查找,但是这种做法效率很低。哪么有没有一种特殊的数据结构,可以高效率的实现我们的需求呢,答案就是 堆(heap)堆分为最小堆和最大堆,它们的性质相似,我们以最小堆为例子。