【发布时间】:2019-04-11 03:08:55
【问题描述】:
我无法理解为什么寻找第 k 个最小元素的解决方案使用最大堆方法。对于第 k 个最大的元素,采用最小堆方法。使用 min heap 来查找第 k 个最小的元素不是更有意义吗,因为最小的元素总是根?因此,如果我们想找到第三小的元素,那么我们只需删除根 2 次,构建堆,就可以得到第三小的元素。在最大堆中,最小的不在根,那么为什么使用它更好呢?对数组中的升序或降序数字进行排序也是如此。我看到大多数人使用最大堆来提升。
【问题讨论】:
标签: algorithm heap heapsort min-heap max-heap