一般来讲,直接用堆的时候,其实就是图那个最大堆和最小堆的排序。 当然了,你说这个排序,不就是sort数组嘛,照样排好序啊。
但堆是这样的,他会自行维护这个序列。就是说,你可以直接pop得到最值 你push进去新的值,他也会自动维护这个顺序。所以这个是它由于数组的地方。 关键在于,你需要排序的同时有需要push,那他自动帮你排好序就可以了。 哈夫曼树就需要用堆,因为哈夫曼树就是pop两个最小的,然后把这两个之和push 进去嘛,直到只剩下一个元素的时候