海量数据分布在100台电脑中,想个办法高效统计出这批数据的TOP10
答:
方案1:
在每台电脑上求出TOP10,可以采用包含10个元素的堆完成(TOP10小,用最大堆,TOP10大,用最小堆)。
比如求TOP10大,我们首先取前10个元素调整成最小堆,如果发现,然后扫描后面的数据,并与堆顶元素比较,如果比堆顶元素大,那么用该元素替换堆顶,然后再调整为最小堆。
最后堆中的元素就是TOP10大。
方案2:
求出每台电脑上的TOP10后,然后把这100台电脑上的TOP10组合起来,共1000个数据
再利用上面类似的方法求出TOP10就可以了。
三个资料Q群下载不了也转发不了,先放这里Fine_tuning.zipLangChain.zipdata_clear.rar