返回首页

堆与优先队列 高频追问 Q&A

1. Q: TopK 为什么常用小顶堆?

A: 堆顶保存当前 TopK 里最小值,新元素只需与堆顶比较即可决定替换。

2. Q: 堆和有序数组怎么选?

A: 动态维护最值选堆;一次性排序并频繁遍历选有序数组。

3. Q: 优先队列底层一定是堆吗?

A: 常见实现是堆,也可以用平衡树等结构。

4. Q: 堆插入和删除复杂度?

A: 均为 O(log n),取堆顶 O(1)

5. Q: 面试写堆题最容易错哪?

A: 比较器方向(大顶/小顶)和边界条件(空堆、单元素)。