0

私はテーブルを持っています

  • 行 1 = (V1、K1、5);
  • 行 2 = (V2、K2、7);
  • 行 2 = (V1、K1、3);

テーブルに含まれるように AggregateRating テーブルのポイントを集計する必要があります

  • 行 1 = (V1、K1、8);
  • 行 2 = (V2、K2、7);

評価テーブルを 1 回ループし、[キー = (Col1,Col2), 値 = ポイント] でマップを作成します。キーが存在する場合はポイントを追加し、それ以外の場合は新しいマップ エントリを作成します。評価テーブルには 100 以上のエントリが含まれている可能性があるため、複数のパスを作成することは避けたいと考えていました。

これが最も効率的な方法ですか??

4

1 に答える 1

0

マップの保存に使用するデータ構造によって異なります。ハッシュ マップを使用する場合は、ハッシュ マップの格納と読み取りの複雑さが一定になります ( O(1))。次に、配列内のすべてのエントリに対して、1 つのクエリと最大 1 つの挿入で 1 つのパスを作成します。これは、アルゴリズム全体の複雑さが になることを意味しますO(n)

ただし、入力だけではO(n)、これ以上のことはできません。

マップの別の実装 (ツリー マップなど) を選択すると、複雑さが変わり、最も効率的なソリューションが得られないことに注意してください。

于 2012-04-07T07:59:10.260 に答える