データをアクセスする方式の1つで、データが実際にどの位置にあるかに関係なく、直接的に読み書きする方法です。
「ランダム」という言葉を用いますが、乱数を用いて規則性なくアクセスするというような意味ではありません。
ランダムアクセスに対し、先頭から順番に検索を繰り返して、目的のデータにアクセスする方式を、シーケンシャルアクセス(順次アクセス)と呼びます。
ランダムアクセスを行うには、データがどこにあるのか分かる情報がなければなりません。たとえば、「このデータはこの範囲内に含まれている」といった対応情報があれば、その位置まで一気に移動(シーク)してアクセスできます。
ランダムアクセスは効率的なようにも思えますが、アクセスしたいデータが点在していると、そのつど移動が必要であるため、シーケンシャルアクセスに劣ることがあります。連続的にしかアクセスできないシーケンシャルアクセスであっても、アクセスするデータが連続的に並んでいるのならば欠点とならず、むしろ非常に効率的です。
記憶媒体の種類によって、使用できるアクセス方式が限定されたり、極度に非効率になったりすることがあります。たとえば、磁気テープでランダムアクセスを行うことは、可能であったとしても非常に効率が悪くなります。
ランダムアクセスできる記憶媒体は RAM(Random Access Memory)、シーケンシャルアクセスしかできない記憶媒体は SAM(Sequential Access Memory)と呼ばれます。
また、ソフトウェアにおいては、アルゴリズムやデータ構造の選択と関係することがあります。たとえば、二分探索のアルゴリズムは、対象のデータ構造が効率的にランダムアクセスできなければ効率が上がりません。そのため、配列に対しては効率的ですが、連結リストに対しては非効率です。
二分探索については、アルゴリズムとデータ構造編【探索】第4章で解説しています。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |