Quantcast
Channel: 配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 757

【データ構造】配列

$
0
0

配列とは

データ構造のひとつに、配列があります。
配列は、要素番号要素(データそのもの)で構成されています。

要素番号は添字(そえじ)インデックスとも言い、必ず 0 から始まります。
また要素は、要素番号によって順序づけられています。

例: 配列 color

要素番号0123
要素redwhitepinkblue
配列の表し方color[0]color[1]color[2]color[3]

1次元配列

上図のような、1列に要素が並んでいる配列を一次元配列といいます。

多次元配列

要素が2列、3列と複数並ぶ配列は、多次元配列といいます。

例: 配列 employee

要素番号01234
要素↓→経理人事営業システム海外事業
0中途(男)23957
1中途(女)35672
2新卒(男)00692
3新卒(女)01762

配列の表し方

要素番号01234
要素↓→経理人事営業システム海外事業
0中途(男)employee[0][0]employee[0][1]employee[0][2]employee[0][3]employee[0][4]
1中途(女)employee[1][0]employee[1][1]employee[1][2]employee[1][3]employee[1][4]
2新卒(男)employee[2][0]employee[2][1]employee[2][2]employee[2][3]employee[2][4]
3新卒(女)employee[3][0]employee[3][1]employee[3][2]employee[3][3]employee[3][4]

配列の特徴

  • 要素のデータ型は同じ
  • 添字によってデータ位置が特定される
  • 要素数をあとから増やしたり減らしたりできない(= 静的データ構造)

配列の操作

配列に格納されたデータの操作方法は、大きく分けて以下の4つがあります。

  • 探索(=目的のデータを探すこと)
  • 更新
  • 削除
  • 挿入

また探索には、 直接探索線形探索の2種類の方法があります。

直接探索

直接探索は、目的のデータが要素番号の何番の位置にあるのかわかっている場合に使われる探索法です。

例えば、配列:color の要素番号2番に目的のデータがある場合、
color[2]に直接アクセスして、更新・削除・挿入などを行います。

線形探索

線形探索は、目的のデータが要素番号の何番の位置にあるのかわからない場合に、最も単純な探索アルゴリズムとして使われる探索法です。

要素番号の小さいほう(または大きいほう)から順に、目的のデータを探します。

直接探索と線形探索の計算量

直接探索は、1回の照会処理で目的のデータにアクセスできるので、常にO(1)(オーダー 1)です。

一方線形探索は、配列の要素数を n とすると、O(n)(オーダー n)が計算量になります。

例えば5つの要素を持つの配列に対して、要素番号の小さいほうから順に探索していくとします。目的のデータが一番最後の要素番号にあった場合、照会処理を行う回数 = 配列要素の数となります。よって計算量は、要素数であるO(5)(オーダー 5)になるからです。

まとめ

  • 配列には、一次元配列多次元配列がある
  • 配列の要素数は途中で変更できない
  • 要素番号を指定して要素(データ)にアクセスする
  • 直接探索は目的のデータの位置がわかる場合に使える
  • 線形探索は、目的のデータの位置がわからない場合に使える

Viewing all articles
Browse latest Browse all 757

Trending Articles