标签: algorithm heap heapsort min-heap max-heap
我很难理解为什么找到第k个最小元素的解决方案使用Max堆方法。对于第k个最大元素,使用最小堆方法。使用最小堆来查找第k个最小元素是否更有意义,因为最小元素将始终是根?因此,如果要查找第3个最小的元素,则只需删除根两次,构建堆,然后得到第3个最小的元素。在最大堆中,最小不是根,那么为什么更好使用呢?对于数组中的升序或降序排序也是如此。我看到大多数人使用最大堆来提升。
答案 0 :(得分:0)
实际上,我们可以同时使用Min和Max堆来查找第k个最小元素:
或