我有一个非常大的网络捕获文件,其中包含一个特定的整数字段。
RECORD 1 : value 987
RECORD 2 : value 878
RECORD 3 : value 823
..
..
..
..
..
我想扫描网络文件并找到该整数字段的 5 个最流行的值。传统的线性算法方法需要我保存所有唯一的整数字段值和字段值的出现频率。我正在考虑使用 map-减少算法来解决这个问题。
我的map()
函数将提取整数值并将其存储在数组中。
A = [987, 878, 823 ......].Map(x => x,freq(x))
我的reduce()
功能将
freq5 = A.reduce( 0, (x > y) ? x : y)
或类似的东西来找出前 5 个最常见的值。
这种方法有意义吗?
对程序的执行时间会有什么影响。?