首页 > 其他 > 详细

top k

时间:2019-07-26 17:10:19      阅读:105      评论:0      收藏:0      [点我收藏+]

1、全部排序

2、快排

3、最小堆

取前k个建立一个最小堆,然后剩余的依次放进去和root比较,大于root,就放进去并扔掉root,重新调整最小堆。最后就是K个最大的数字。

4、分治法

将全部数据分成N份,前提是每份的数据都可以读到内存中进行处理,找到每份数据中最大的K个数。此时剩下N*K个数据,如果内存不能容纳N*K个数据,则再继续分治处理,分成M份,找出每份数据中最大的K个数,如果M*K个数仍然不能读到内存中,则继续分治处理。直到剩余的数可以读入内存中,那么可以对这些数使用快速排序的变形或者归并排序进行处理。

5、hash

top k

原文:https://www.cnblogs.com/pacino12134/p/11251401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!