ScholarGate
アシスタント

基本的なデータ構造

基本的なデータ構造とは、データを格納しアクセスするための組織化された方法であり、配列、連結リスト、ハッシュテーブル、ツリー、ヒープなどが含まれます。これらは、その上に構築される操作の効率性を決定します。

PaperMindでテーマを探す近日公開Find papers & topics
Tools & resources
スライドをダウンロード
Learn & explore
動画近日公開

Definition

データ構造とは、その抽象データ型によって定義される操作を効率的に実行できるように、データを整理し格納する方法です。基本的なデータ構造とは、他のほとんどのデータ構造が構築される汎用的な構造の小さなセットを指します。

Scope

この分野では、抽象データ型(リスト、辞書、優先度キュー、セット)と、それらを実装する具体的な構造、および最悪ケース分析と償却分析におけるそれらのコア操作(挿入、削除、検索、更新)のコストを扱います。構造の選択がアルゴリズムの性能をどのように形成するか、またこれらの構造に依存する設計パラダイムやグラフおよび文字列アルゴリズムとの関連性について論じます。他のサブフィールドで扱われるデータベースおよびファイルシステムストレージ構造は除外します。

Sub-topics

Core questions

  • アプリケーションにはどの抽象データ型が必要で、どの具体的な構造がそれを最適に実装しますか?
  • 特定の構造における各操作の最悪ケースおよび償却コストはどのくらいですか?
  • 構造はメモリと時間のトレードオフ、または読み取り速度と更新速度のトレードオフをどのように行いますか?
  • 不変条件(ソート済み、平衡、ヒーププロパティ)を維持することが操作コストをどのように制約しますか?
  • 漸近的に高速だがより複雑な構造よりも、単純な構造が好ましいのはどのような場合ですか?

Key concepts

  • 抽象データ型
  • 配列と連結リスト
  • スタックとキュー
  • ハッシュテーブル
  • 二分探索木
  • 平衡木
  • ヒープと優先度キュー
  • 償却分析
  • 時間空間トレードオフ

Key theories

抽象データ型と実装
抽象データ型は、表現に依存しない操作とそのセマンティクスを規定します。複数の具体的なデータ構造が、異なる性能プロファイルで同じADTを実装でき、設計者は正しさとコストについて個別に推論できます。
償却分析
一部の構造(動的配列、スプレー木)は、時折高価な操作を伴いますが、一連の操作全体では平均して安価な操作となります。償却分析(集計法、会計法、ポテンシャル法)は、この平均コストを厳密に制限します。

Clinical relevance

基本的なデータ構造は、実質的にすべてのソフトウェアの構成要素です。ハッシュテーブルは辞書やデータベースインデックスの基盤となり、平衡木やB-木はファイルシステムやデータベースを整理し、優先度キューはスケジューラやイベントシミュレーションを駆動します。適切な構造の選択は、しばしばシステムの拡張性を決定します。

History

基礎的なデータ構造は、1968年に始まったクヌースの『The Art of Computer Programming』で体系化されました。自己平衡木(AVL木、1962年;赤黒木、B-木、1970年代)や、フィボナッチヒープ、スプレー木(1980年代、主にタージャンとその共同研究者による)などの高度な構造がこの分野を拡張し、償却分析はそれらの性能を厳密に説明しました。

Key figures

  • Donald Knuth
  • Robert Sedgewick
  • Robert Tarjan
  • Rudolf Bayer

Related topics

Seminal works

  • knuth1997vol1
  • cormen2009
  • sedgewick2011

Frequently asked questions

ハッシュテーブルと平衡探索木のどちらを選択すればよいですか?
ハッシュテーブルは期待されるO(1)のルックアップと挿入を提供しますが順序は保持しません。一方、平衡探索木はO(log n)の操作を提供し、キーをソートされた状態に保つため、範囲クエリや順序付きトラバーサルをサポートします。純粋なキーのルックアップにはハッシュを選択し、順序付けや範囲操作が重要な場合は木を選択します。
データ構造における償却コストとは何を意味しますか?
償却コストとは、最悪ケースの一連の操作における、操作あたりの平均コストです。例えば、動的配列はサイズ変更のために時折O(n)のコストを支払いますが、サイズ変更が安価な追加操作に比べて稀であるため、追加操作あたりの平均コストはO(1)となります。

Methods for this concept

Related concepts