私はを持っていますが、A
のオブジェクトは一意であり、オブジェクトはB
ではありません。スワッピングの複雑さC#のディクショナリタイプの引数
B
のオブジェクトでデータをグループ化するとします。
など。
Dictionary<A,B> input = GenerateInput();
List<IGrouping<B,A>> output = input
.GroupBy(pair => pair.Value, pair => pair.Key)
.ToList();
- アプローチの複雑さとは何ですか? O(n)?複雑さ= GroupBy操作の複雑さ - 私は値を見つけませんでした。私に教えて、記事へのリンクを提供してください。
- このスワッピングをより効率的に/エレガントに行う方法はありますか?
PS。変数input
とoutput
の型を明示的に書いて、私はoutput
がDictioany<,>
である必要はないことを示しています。 A
までB
まで行くにはコンテナが必要です。
GroupByはO(n)操作です。操作モードは、辞書を作成する場合と非常によく似ています(辞書ごとにコンテナがあり、キーごとに複数の値を指定できます)ので、要素ごとの挿入は〜O(1)であり、列挙してグループを生成します。 – spender