TOPK
程序员文章站
2022-06-17 09:30:13
...
实现思路:
TopN算法:从已经存在的数组中,找出最大(或最小)的前n个元素。
算法(以找最大的n个元素为例):
1. 取出数组的前n个元素,创建长度为n的小根堆;
2. 从n开始循环数组的剩余元素,如果当前元素比小根堆的根节点大,则将当前元素设置成小根堆的根节点,并通过调整让堆保持小根堆;
3. 循环完成后,小根堆中的所有元素就是需要找的最大的n个元素;
4. 根据需要对小根堆中的所有元素继续利用堆排序算法进行排序。
相关知识:
Algorithm之排序之堆排序(Heap Sort)
https://lixh1986.iteye.com/blog/2354246
https://blog.csdn.net/xiao__gui/article/details/8687982
https://www.jianshu.com/p/d292401a183a
-
TopN算法:从已经存在的数组中,找出最大(或最小)的前n个元素。
算法(以找最大的n个元素为例):
1. 取出数组的前n个元素,创建长度为n的小根堆;
2. 从n开始循环数组的剩余元素,如果当前元素比小根堆的根节点大,则将当前元素设置成小根堆的根节点,并通过调整让堆保持小根堆;
3. 循环完成后,小根堆中的所有元素就是需要找的最大的n个元素;
4. 根据需要对小根堆中的所有元素继续利用堆排序算法进行排序。
相关知识:
Algorithm之排序之堆排序(Heap Sort)
https://lixh1986.iteye.com/blog/2354246
https://blog.csdn.net/xiao__gui/article/details/8687982
https://www.jianshu.com/p/d292401a183a
-
上一篇: MySQL入门书籍和方法分享
下一篇: TOPK