试题
考点

算法-大数据相关算法-大数据相关算法

面5笔5

一个分布式系统的海量数据分布在100台服务器中,怎么统计出这些数据的TOP10

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

思路:

先对每台服务器的数据求得各自的TOP10,然后把100*10= 1000个数据求得TOP10即可。

对每台服务器,按例一的方法切分成小文件。

内存里分配一个TOP的整数空间,用于记录TOP10的数据,为方便计算,需要使这个空间从大到小有序排列。

读取小文件的数据,如果比整数空间的最后一个数据大的话,则代替最后一位,并从后往前比较移动,使剩下的数据有序。

得到每个文件的TOP10数据后,记录到文件中。

把100台的TOP10数据汇总到一台服务器中,依然使用分配有序空间的方法,就能得到TOP10的数据了。

可以发现,这个有序空间也可以用堆排序来实现。

评论
暂无评论

加载更多