C#の辞書、コレクション、リストの時間複雑

リストテーブル線形順序をリスト、リストの追加操作がO(1)であり、膨張時に、追加操作が非拡張、前に、動的な拡張であるため、操作は、O(1)又はO(N)であり、追加O(N)です。O(N)の複雑で線形検索に応じて、その方法が含ま。

SortedListのリストは、操作を追加し、線形テーブルを命じている方法を含み、O(n)は、半分に検索要素を見つけることであり、したがって、複雑さがのcontainsKey方法も半分要素を取得見つけるO(LG n)は、であり、複雑でありさO(LG n)は、のcontainsValue要素は、線形探索の複雑さはO(N)です。

HashSetののコレクションは、一次元アレイが、二次元の鎖構造(:サイズNの一次元アレイは、常に2の累乗である拡張)である自体、順序付けられていないハッシュテーブルを含む複製(非線形)されていません。同じコレクションクラスの一覧ので、操作はO(1)またはO(N)である加えます。この方法は、O(1)で含有します。

たSortedSetのコレクションは赤黒木の実装に基づいており、Addメソッドは、O(LG n)は、この方法は、O(LG n)が含まれています。

辞書辞書クラスは、ハッシュテーブルであり、動作を追加O(1)又はO(N)、上記原理です。ハッシュ要素を介してではなく、要素を検索するために、O(1)でのcontainsKey。方法のcontainsValue時間複雑ではなく、ルックアップハッシュによってよりキーを見つけるために繰り返すことにより、内部値ので、O(N)です。項目[キー]プロパティの値を取得するための鍵は、時間の複雑さはO(1)です。

SortedDictionary辞書カテゴリは、平衡二分木実装Addメソッドに基づいているO(LG n)は、にContainsKey法はO(LG n)は、とのcontainsValue法はO(N)です。

おすすめ

転載: www.cnblogs.com/wccfsdn/p/11945454.html