用堆解决TopK问题:
找最大K个用小顶堆/最小K个用大顶堆:
长度为K的数组,存入K个数据,建立小顶堆
依次从K+1往后和堆顶比较,小于则pass,大于则替换并重新建立小顶堆
最终堆中K个元素即是要找的TopK
分布在不同电脑中:
同一种数据只出现在一台电脑中:比正常多用一次TopK方法
同一种元素可以出现在不同电脑中:重新遍历所有并hash取模,再用TopK
posted on 2017-08-10 17:13 zawjdbb 阅读(105) 评论(0) 编辑 收藏 举报