自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除