配列
O(1)インデックスアクセスを持つ連続メモリ構造。
配列は、同じ型の要素を連続したメモリ位置に格納する基本的なデータ構造です。これにより、インデックスを使用して定数時間O(1)で任意の要素にアクセスできます。
主な特徴:
- 固定サイズ
- ランダムアクセスの高速化
- キャッシュ効率の良さ
欠点として、要素のシフトが必要な挿入と削除のコストがO(n)であることが挙げられます。
graph LR
Center["配列"]:::main
Pre_data_structures["data-structures"]:::pre --> Center
click Pre_data_structures "/terms/data-structures"
Rel_linked_list["linked-list"]:::related -.-> Center
click Rel_linked_list "/terms/linked-list"
Rel_queue["queue"]:::related -.-> Center
click Rel_queue "/terms/queue"
Rel_stack["stack"]:::related -.-> Center
click Rel_stack "/terms/stack"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5歳でもわかるように説明
番号が付いたロッカーの列を想像してください。番号を知っていれば、他のロッカーを確認せずに直接そのロッカーに行くことができます。それが配列の仕組みです!
🤓 Expert Deep Dive
空間的局所性により、配列はキャッシュラインの利用効率が高くなります。SIMD命令による並列処理が可能です。メモリアライメントは最新のアーキテクチャでのパフォーマンスに重要です。
🔗 関連用語
前提知識: