バブルソートとは?仕組みと、速度

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

バブルソートとは(全体像)

バブルソートとは、隣り合うデータを比べて、順番が逆になっていれば入れ替える。これを、くり返して、データを並べ替える(整列する)方法のことだ。

背の順に並ぶときをイメージしよう。隣の人と背を比べて、逆なら入れ替える。これを端から端まで、何度もくり返すと、だんだん順番がそろっていく。

名前の由来は、小さい値が、泡(バブル)のように、だんだん上(先頭)へ浮き上がってくるようすから来ている。


詳しく:仕組みと、速度

ここが心臓部。バブルソートのポイントを押さえよう。

バブルソートのポイント

項目やさしい意味
やり方隣り合うデータを比べ、逆なら入れ替える(くり返す)
名前の由来小さい値が泡のように上に浮き上がる
実装かんたん(教育用によく使われる)
速さ遅い(全部を比べるので、データが多いと時間がかかる=O(n²))

バブルソートは、作り方(実装)はとても簡単だ。隣どうしを比べて入れ替えるだけなので、分かりやすい。

ただし、速度は遅い。全部のデータどうしを何度も比べるため、データが多いと、とても時間がかかる(O(n²))。ここで一番のポイント。「実装が簡単=速い」ではない。バブルソートは、簡単だが遅い。「バブルソートは高速」と思い込むと誤りになる。だから、小規模なデータや、学習用に使われることが多い。

わかりやすく言い換えると

身近なたとえで整理しよう。

バブルソートは、「背の順に並ぶとき、隣の人と背を比べて、逆なら入れ替える、をくり返すこと」のイメージ。地道だが、確実に並ぶ。

名前の由来は、「小さい値が、泡のように上に浮き上がってくる」ようす。つまり、だんだんそろっていく見た目から来ている。

「実装は簡単だが遅い」というのは、作るのは楽だけど、データが多いと時間がかかること。要するに、簡単さと速さは別、ということだ。


試験のツボ

🔴 一番出る:バブルソートの仕組み

①隣り合うデータを比べて、逆なら入れ替える

②これをくり返して、データを並べ替える

🔴 次に出る:実装は簡単だが遅い

①実装は簡単(教育用によく使われる)

②速度は遅い(全部を比べるのでO(n²))

🟡 押さえると安定:名前の由来

①小さい値が泡(バブル)のように上に浮き上がる

②そのようすから「バブルソート」と呼ばれる


よくある間違い

「バブルソートは、実装が簡単なので、速度も速い」→ ✗  実装は簡単だが、速度は遅い(O(n²))。簡単さと速さは別。

「バブルソートは、データの真ん中から並べ替えていく方法だ」→ ✗  バブルソートは、隣り合うデータを比べて入れ替える方法。真ん中からではない。

「バブルソートは、データが多いほど、速く並べ替えられる」→ ✗  データが多いほど、比べる回数が増えて時間がかかる(O(n²))。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(バブルソートの仕組み)

📝 オリジナル問題 1 バブルソートの仕組み

バブルソートに関する次の記述のうち、最も適切なものはどれか。

  1. 社員の出退勤を記録して、毎月の給与を計算するためのしくみである
  2. 隣り合うデータを比べて、逆なら入れ替える並べ替えの方法である
  3. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  4. 完成したシステムを宣伝して、より多く売るための広告活動である
データパン
データパン 解答・解説

解答は 2 だぱん。

バブルソートは、隣り合うデータを比べて、逆なら入れ替える並べ替えの方法なんだぱん。背の順に並ぶイメージだぱん。

選択肢1は給与計算、選択肢3は請求書の事務、選択肢4は広告で、どれも違うぱん。

選択肢判定理由
1給与計算のしくみではない
2隣どうしを比べ入れ替える並べ替えで正しい
3請求書の事務の話
4広告活動ではない

オリジナル問題2(名前の由来)

📝 オリジナル問題 2 バブルソートの名前の由来

バブルソートの名前の由来として、最も適切なものはどれか。

  1. 社員の給与を計算するときの、泡のような動きから来ているとされる
  2. 取引先へ請求書を郵送するときの動きから来ているとされている
  3. 小さい値が泡のように、だんだん上に浮き上がるようすから来ている
  4. 完成したシステムを宣伝するときの動きから来ているとされている
データパン
データパン 解答・解説

解答は 3 だぱん。

バブルソートの名前は、小さい値が泡のように、だんだん上に浮き上がるようすから来ているんだぱん。だんだんそろっていく見た目だぱん。

選択肢1の給与、選択肢2の請求書、選択肢4の宣伝は、いずれも違うぱん。

選択肢判定理由
1給与計算の動きではない
2請求書の郵送の動きではない
3小さい値が泡のように浮き上がるで正しい
4宣伝の動きではない

オリジナル問題3(実装と速度)

📝 オリジナル問題 3 バブルソートの実装と速度

バブルソートの実装と速度に関する次の記述のうち、最も適切なものはどれか。

  1. 実装は簡単だが、速度は遅い(全部を比べるのでO(n²))
  2. 実装も速度も、社員の給与の計算しだいだとされているものだ
  3. 実装も速度も、取引先への請求書の枚数しだいだとされている
  4. 実装は簡単で、速度もとても速いものだとされているものである
データパン
データパン 解答・解説

解答は 1 だぱん。

バブルソートは、実装は簡単だが、速度は遅い(全部を比べるのでO(n²))んだぱん。「簡単だから速い」とまちがえないようにするといいぱん。

選択肢2の給与、選択肢3の請求書、選択肢4の「とても速い」は、いずれも違うぱん。

選択肢判定理由
1実装は簡単だが遅い(O(n²))で正しい
2給与計算で決まるのではない
3請求書の枚数で決まるのではない
4速度は速くない(遅い)

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る