聚合点的算法

时间:2012-04-07 07:52:11

标签: performance algorithm aggregation

我有一张表评级

  • row1 =(V1,K1,5);
  • row2 =(V2,K2,7);
  • row2 =(V1,K1,3);

我需要聚合AggregateRating表中的Points 这样表包含

  • row1 =(V1,K1,8);
  • row2 =(V2,K2,7);

我通过评级表循环一次 使用[key =(Col1,Col2),value = Points]创建地图 如果密钥存在,我添加点,否则创建一个新的映射条目。 评级表可以包含近100个条目,所以我想避免多次通过。

这是最有效的方法吗?

1 个答案:

答案 0 :(得分:0)

这取决于您用于存储地图的数据结构。如果使用哈希映射而不是存储和读取它将在复杂性(O(1))中保持不变。然后使用一个查询进行一次传递,并为数组中的每个条目最多一次插入。这意味着算法的整体复杂性将为O(n)

但是,仅输入O(n),这意味着您无法做得更好。

请注意,如果您选择不同的地图实施方式,例如树形图,复杂性将发生变化,您将无法获得最有效的解决方案。