本文へスキップ

探索と整列のアルゴリズム

標準約 28 分5 用語過去問 4 題

この単元の目標

  • 線形探索法と2分探索法を、前提となるデータの並びと比較回数の増え方で区別できる。
  • 選択ソートとバブルソートで、並べ替えの途中の並びの変化を小さなデータで追える。
  • クイックソートが基準値で組を分け、同じ手順を繰り返して並べる流れを説明できる。
用語総表(5 語)
用語ひとことで種類1 回の操作比較回数の目安
線形探索法先頭から 1 つずつ目的の値と比べる探索次の 1 件と比べる件数に比例
2分探索法昇順か降順に並んだデータで範囲を半分ずつ絞る探索範囲の中央と比べて片側を捨てる件数が 2 倍でも 1 回ほど増えるだけ
選択ソート残りの範囲から最小値を選んで端へ移す整列最小値を探し終えてから、必要なら 1 回交換件数の 2 乗に比例
バブルソート隣り合う 2 つを比べ、逆なら入れ替える整列隣同士を比べてその場で交換件数の 2 乗に比例
クイックソート基準値で大小の組に分け、各組でも繰り返す整列基準値より小さい組と大きい組に分ける平均では件数の 2 乗型の方法より少ない

用語

線形探索法は、データの先頭から順に 1 つずつ 目的の値と比べ、一致した時点で終える探索法である。

  1. 1 番目の 4 と比べる
  2. 2 番目の 9 と比べる
  3. 3 番目の 7 で一致して終了

3 回目の比較で一致したので、残りの 2 は調べずに終える。

3 / 3

データが並べ替えられていなくても、そのまま使える。比較回数は目的の値の位置で決まり、末尾にある場合や見つからない場合は全件と比べることになる。平均すると、およそ件数の半分の回数の比較が要る。

たとえ背表紙の並びがばらばらの本棚で、目当ての本を左端から 1 冊ずつ確かめていくようなもの。

覚え方「線形」は一本の線。線をなぞるように、端から一方向へ進む。

出題のポイント

  • 出題線形探索法の比較回数はデータ件数に比例して増える。件数が 2 倍になれば、最悪の比較回数も 2 倍になる。

この用語の過去問 1 題 線形探索法

2分探索法は、値の小さい順 (昇順) か大きい順 (降順) に並んだ整列済みのデータで、探索範囲の 中央 の値と比べて目的の値がある側へ範囲を半分ずつ絞る探索法である。

  1. 範囲は 1〜8 番目
  2. 中央の 4 番目 13 と比べる
  3. 範囲を 5〜8 番目に絞る
  4. 中央の 6 番目 21 で一致

新しい範囲の中央の 6 番目が 21 で一致し、2 回の比較で見つかる。

4 / 4

昇順の場合、目的の値が中央の値より小さければ前半、大きければ後半だけを残し、一致するか範囲がなくなるまで繰り返す。1 回の比較で候補が約半分になるので、件数が 2 倍になっても比較は 1 回ほどしか増えない。ただし比較回数は探す値の位置でも変わり、先頭近くの値なら線形探索法の方が少ない回数で見つかることもある。

たとえ番号順に重ねた受付票の束から真ん中の 1 枚を抜き、目当ての番号が前か後ろかを決めて、残った半分でまた真ん中を見るようなもの。

覚え方「2分」は 2 つに分けること。英語の binary search の binary も「2 つの」を表す。

出題のポイント

  • 出題2分探索法は、残った範囲の中央の要素と比べることを繰り返し、1 回の比較ごとに候補を約半分に減らす。
  • 混同注意昇順か降順に整列済みであることが前提なのは2分探索法で、線形探索法はデータの並び順を問わずに使える。

この用語の過去問 1 題 2分探索法

「線形探索法」と「2分探索法」の違い

観点線形探索法2分探索法
決め手データの並び並び順を問わない昇順か降順に整列済みであること
比べ始める位置先頭探索範囲の中央
件数が 2 倍になったとき最悪の比較回数も 2 倍比較回数は 1 回ほど増える

選択ソートは、まだ並べ終えていない範囲から 最小値 (または最大値) を選び、その範囲の端の値と交換することを繰り返す整列法である。

  1. 開始 6 2 9 4
  2. 1 回目 2 6 9 4
  3. 2 回目 2 4 9 6
  4. 3 回目 2 4 6 9 (残り 1 個も確定)

3 回目は残り 9 6 の小さい方の 6 を 3 番目の 9 と交換して 3 番目が確定し、最後に残った 9 も比べずに 4 番目に決まる。

4 / 4

整列とは、データを値の大小の順に並べ替える処理である。未整列の範囲を一通り調べて端の 1 か所の値を確定させる一回りを 1 巡といい、1 巡ごとに範囲が 1 つずつ狭まる。比較回数はおよそ件数の 2 乗に比例するので、件数が多いと時間がかかる。

たとえトランプの手札で、まだ並べていない札の中から一番小さい札を探し、並べ終えた札のすぐ右へ移すことを繰り返すようなもの。

覚え方英語の selection は「選び出す」。代表選考のように、全員を見比べてから 1 人を選ぶ。

出題のポイント

  • 出題選択ソートは 1 巡で端の 1 か所が確定し、最後に残った 1 個は比べなくても位置が決まる。巡の回数は、残り 1 個も 1 巡と数える手順なら件数、数えない手順なら件数 − 1 になる。
  • 出題最小値を前へ移す選択ソートでは、k 回目の選択と交換を終えた時点で、先頭の k 個が小さい順に確定している。

この用語の過去問 2 題 選択ソート

バブルソートは、隣り合う 2 つの値を比べて順序が逆なら入れ替えることを、端から端まで繰り返す整列法である。

  1. 開始 6 2 9 4
  2. 6 と 2 を交換 → 2 6 9 4
  3. 6 と 9 はそのまま → 2 6 9 4
  4. 9 と 4 を交換 → 2 6 4 9

3 番目と 4 番目を入れ替えると、最大の 9 が末尾に運ばれて 4 番目が確定する。

4 / 4

昇順に並べる場合、1 巡すると最も大きい値が末尾まで運ばれて確定する。次の巡は確定した末尾を除いた範囲で同じことを行い、1 巡の間に入れ替えが起きなければ並び終わっている。比較回数は選択ソートと同じく、およそ件数の 2 乗に比例する。

たとえ一列に並んだ人が隣の人とだけ背比べをして、背の高い方が右へ 1 つずれることを列の端まで続けるようなもの。

覚え方bubble は泡。大きな値が泡のように 1 つずつ端へ浮かび上がっていく。

出題のポイント

  • 出題昇順のバブルソートは、隣り合う 2 つのうち左の値が大きいときに入れ替える。1 巡ごとに末尾の値が確定するので、次の巡では比べる範囲が 1 つ短くなる。
  • 混同注意選択ソートは 1 巡で最小値を探し終えてから多くても 1 回交換し、バブルソートは比べるたびに逆順の隣同士をその場で交換する。

この用語の過去問 1 題 バブルソート

「選択ソート」と「バブルソート」の違い

観点選択ソートバブルソート
決め手1 回比べた後より小さい値なら最小値の候補として覚え直す (交換はしない)逆順ならその場で隣同士を交換
1 巡の交換回数1 回まで比べたときに逆順だった組の数だけ
昇順の基本形で 1 巡に確定する値選んだ最小値 (先頭側)最大値 (末尾側)

クイックソートは、基準値 (ピボット) を 1 つ決めてデータをそれより小さい組と大きい組に分け、各組にも同じ手順を繰り返す整列法である。

  • 5 8 2 7 1 4 (基準値 5)
    • 小さい組 2 1 4 (基準値 2)
      • 1
      • 2
      • 4
    • 5
    • 大きい組 8 7 (基準値 8)
      • 7
      • 8

各組でも基準値で分け、1 個になった値から位置が確定する。左から読むと 1 2 4 5 7 8 になる。

3 / 3

組の要素が 1 個以下になれば分ける必要がなくなり、各組を順に並べると全体が整列する。このように、同じ手順をより小さな部分に当てはめていくやり方を再帰という。平均的な比較回数は件数の 2 乗型の方法より少ないが、基準値の選び方が悪いと件数の 2 乗に近づく。

たとえ書類の山を基準の日付より前の山と後の山に分け、それぞれの山をまた同じように分けていくようなもの。

覚え方quick は英語で「速い」の意味。

要点

  • 探索はデータの中から目的の値の位置を見つける処理、整列は値の大小順に並べ替える処理である。
  • 選択ソートとバブルソートは、どちらも 1 巡ごとに端から値の位置が確定していき、比較回数はおよそ件数の 2 乗に比例する。
  • クイックソートは基準値で大小の組に分け、各組に同じ手順を繰り返す。平均では件数の 2 乗型の方法より比較回数が少ない。

確認問題

この単元の過去問から 4 題

確認問題を解く

この分野の過去問をすべて見る