思路:
先对每台服务器的数据求得各自的TOP10,然后把100*10= 1000个数据求得TOP10即可。
对每台服务器,按例一的方法切分成小文件。
内存里分配一个TOP的整数空间,用于记录TOP10的数据,为方便计算,需要使这个空间从大到小有序排列。
读取小文件的数据,如果比整数空间的最后一个数据大的话,则代替最后一位,并从后往前比较移动,使剩下的数据有序。
得到每个文件的TOP10数据后,记录到文件中。
把100台的TOP10数据汇总到一台服务器中,依然使用分配有序空间的方法,就能得到TOP10的数据了。
可以发现,这个有序空间也可以用堆排序来实现。
帖子还没人回复快来抢沙发