<iframe src="//www.googletagmanager.com/ns.html?id=GTM-KRK26M" height="0" width="0" style="display:none;visibility:hidden"></iframe>

探索と整列の基本|線形探索・ソートの違い(ITパスポート・テクノロジ系)

ねえねえ、クラス名簿から気になる男の子の名前を探すときって、どうする?
上から順に見る?それとも何かコツ、ある?

実はこういう「探し方」や「並び替え方」には、ちゃんとしたアルゴリズムがあるんだよ〜!

この記事では、探索(サーチ)と 整列(ソート)の基本を、
図や例をまじえていっしょに見ていこうね!

探索とは?|線形探索法と2分探索法の違い

探索って?

たくさんあるデータの中から、目的のものを探すこと。

たとえば名簿から好きな人の名前を探したり、
フォルダの中から好きな画像を探したりするのも「探索」だよ!

線形探索(せんけいたんさく)

順番にひとつずつ見ていく方法。
たとえば、アルファベット順に並んでない名簿を上から全部読む感じ!

2分探索(にぶんたんさく)

データがすでに整列されている場合にだけ使える「超効率的な探し方」なの!

やり方はこう:

  1. 真ん中の人を見る
  2. 探してる名前より前か後かを判定
  3. 半分にしぼって再び真ん中を見る…

…と、どんどん範囲を絞っていくよ!

こんな感じだよ~!

 整列(ソート)とは?|バブル・選択・クイック

整列(ソート)って?

「データを決まった順番に並び替えること」だよ。

  • 名前順
  • 点数の高い順
  • 生年月日の早い順

など、いろんな基準で整えるよ!

選択ソート

小さい順に並べたいとき、一番小さいものを見つけて左端に置く → 残りからまた一番小さいものを探して次に…というやり方。

「全員の中から一番イケメンを選ぶ→残りからまた選ぶ→…」みたいな感じ?💓

バブルソート

となり同士を比べて、順番が逆なら入れ替える、っていうのを何回も繰り返す方法。

「5と3、あ、逆だ!→入れ替えっ」って感じで、
“泡(バブル)”が上がるように一番大きい数字が最後にポンっと浮いてくるイメージ!

クイックソート

これは一番頭のいい子

真ん中くらいの「基準(ピボット)」を選んで、
小さいグループと大きいグループに分けて、
その中でまた同じことを繰り返すよ。

比較まとめ|それぞれの向き・不向きは?

種類特徴向いている場面注意点
線形探索順番に全部調べる少量のデータ/順番が決まってない時遅い
2分探索真ん中からしぼっていくデータがソート済みのとき並び順が必要
選択ソート毎回「最小」を探して左に寄せるデータ数が少ない時効率はあまりよくない
バブルソート隣と比べて入れ替えを繰り返す小テストや練習には○とにかく遅い
クイックソートピボットを使って分割しながら並べる大量データ/スピードが欲しい時実装ちょっと複雑

データ型に関するITパスポート過去問チャレンジ!

配列に格納されているデータを探索するときの、探索アルゴリズムに関する記述のうち、適切なものはどれか。

ア. 2分探索法は、探索対象となる配列の先頭の要素から順に探索する。
イ. 線形探索法で探索するのに必要な計算量は、探索対象となる配列の要素数に比例する。
ウ. 線形探索法を用いるためには、探索対象となる配列の昇順や降順にソートされている必要がある。
エ. 探索対象となる配列が同一であれば、探索に必要な計算量は探索する値によらず、2分探索法が線形探索法よりも少ない。

正解は『イ』だよ!

線形探索法は先頭から順に順番を追って探すため、最悪ケースでは全要素を調べる O(n) の計算量になるため、要素数に比例する探索時間となるよ。

ITパスポート試験をスマホで手軽に勉強!

「えろ勉」も戦略的に開発&運営してるよ~!この記事が勉強になったり、ためになったよ〜って思ったら、なんかアクションをお願い!!「えろの力で勉強するゲーム:えろ勉

もし私が整列できないくらい混乱してたら、
きみがそっとピボットになって、助けてくれる…?🥹

関連記事

TOP