2 堆排序原理
查找:找小用大,找大用小
排序:升序用小,降序用大。
215. 数组中的第K个最大元素 - 力扣(LeetCode)
这题先来解读查找的情况:
官方题解中讲解的非常清楚了 但这是找最大元素 并且使用大堆根的情况
但其实 如果根据口诀 找最大用小 找最小用大有什么好处?
举例 如果是找最大的用小堆 这样最后剩下的根元素恰好就是我们要找的元素(倒数第几大的元素)
这样就避免了之后还要重新删除的麻烦。(本质上 这个删除的逻辑就是用了排序)
至于排序:假设我需要从大到小排序 那么我每次都删除根节点(也就是最大的元素) 这样最终的效果就是从大到小排序了