Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

n個の要素とO(1)操作のデータ構造?


ここでは、n個の要素を持つ1つのデータ構造と、O(1)操作を示します。そのため、操作の実行には一定の時間がかかります。

データ構造はn個の要素(0からn-1まで)を保持します。データは任意の順序にすることができます。挿入、削除、検索にはO(1)の時間がかかります。

この問題を解決するために、1つのブール配列を使用します。これは、アイテムが位置iに存在するかどうかを示します。アイテムが存在する場合は1を保持し、存在しない場合は0を保持します。

アルゴリズム

initialization(n)

begin
   fill all elements of the Boolean array as 0
end

insert(i)

begin
   set element at index i as 1(true)
end

delete(i)

begin
set element at index i as 0(false)
end

search(i)

begin
   return item at position i
end

//initialization
void init(int n) {
   bool dataStructure[n];
   for (int i = 0; i<n; i++)
      dataStructure[i] = 0;
}
//Insertion
void insert(unsigned i) {
   dataStructure[i] = 1;
}
//Deletion
void delete(unsigned i) {
   dataStructure[i] = 0;
}
//Search
bool search(unsigned i) {
   return dataStructure[i];
}

  1. ハーフエッジデータ構造

    はじめに テンプレートパラメータまたはハーフエッジデータ構造(HalfedgeDSと略記)のHDSは、平面マップ、多面体、またはその他の方向付け可能な2次元など、頂点、エッジ、および面の入射情報を維持できるエッジ中心のデータ構造として定義されます。ランダムな次元に埋め込まれたサーフェス。各エッジは、反対方向の2つのハーフエッジに分割されます。各ハーフエッジには、1つの入射面と1つの入射頂点が格納されます。各面と各頂点に1つの入射ハーフエッジが格納されます。ハーフエッジデータ構造のバリエーションを減らすと、面のハーフエッジポインタや面の保存など、この情報の一部を削除できます。 ハーフエッジデ

  2. データ構造における適応型マージとソート

    アダプティブマージソート アダプティブマージソートは、ソートされたサブリストのマージソートを実行します。ただし、最初のサブリストのサイズは、サイズ1のサブリストではなく、要素のリスト間の順序の存在に依存します。たとえば、図のリストについて考えてみます。 2つのソートされたサブリストで構成されています。 要素16、15、14、13を含むサブリスト1。 要素9、10、11、12のサブリスト2。 サブリスト1はソートされていますが、逆の順序になっています。したがって、サブリスト1は、図に示すように逆になります。 サブリストが見つかると、マージプロセスが