解説
バブルソートは、隣り合う要素を比べて順序が逆なら交換する、というシンプルな操作を繰り返す並べ替えです。大きな値が後ろへ泡(bubble)のように移動することから名づけられました。
手順は次の通りです。
1. 左から隣どうしを比較し、左 > 右 なら交換する。
2. 端まで進むと最大値がいちばん後ろに確定する(1パス)。
3. 確定した範囲を除いてパスを繰り返す。
計算量は O(n²) です。動きが目に見えやすく、ソートの入門に向いています。
書き方
バブルソート: 隣どうしを比較し逆なら交換。 ・二重ループ: 1パスで最大値が末尾に確定。 ・data[j], data[j+1] = data[j+1], data[j] で交換。O(n²)。
書いて動かす
この回の課題
隣接要素を比較・交換するパスをくり返し、各パスの配列を表示しながら昇順に並べ替えよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
自分のPCでも続けてみませんか
Windows版 InsightPy は Python を同梱しているので、環境構築なしで同じコードを書いて実行できます。 書いたコードを保存しておけるほか、ステップ実行で変数の変化を1行ずつ確かめられます。 個人の学習や私的な目的でのご利用は、31日目以降も無料です(スクリプトの保存は10本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。