- 博客(3)
- 收藏
- 关注
原创 Top K,输出前K小的元素
摘要:本文比较了三种获取前K小元素的算法。1)整体排序法时间复杂度为O(n²);2)堆排序法通过构建小根堆实现,时间复杂度为O(nlogn + klogn);3)最优解法使用大根堆,先构建前K个元素的大根堆,再比较剩余元素,时间复杂度为O(klogk + (n-k)logk)。第三种方法通过减少堆操作次数显著提高了效率,是处理TopK问题的最佳选择。
2025-12-11 13:57:18
200
原创 堆的插入删除以及如何按大小顺序输出堆中元素
实现逻辑之前,我们要先想一个问题,如果使其遍历输出是从小到大排序,我们要建成什么堆合适呢?因为我们当时建堆的时候是有多少个元素就建多大空间的堆,我们并没有多余的空间去存储新插入的元素,于是我们便有了第一步的思路,那就是扩充elem数组的长度,并将新来的元素放到最后一个位置上,接着我们再调整这个堆,使其变成大根堆(小根堆),这就是我们的总体思路。
2025-11-12 22:29:20
240
原创 堆(优先级队列)的建立
堆可以分为小根堆和大根堆,顾名思义,小根堆就是每一个父亲节点与其子树的关系都是根小于其子树,大根堆与其相反,每个父亲节点都比其子树要大注:大根堆与小根堆都不看父亲节点的左子树是否大于或者小于右子树,只要比父亲节点大或者小就可以了。
2025-11-11 15:44:41
901
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅