コース: 試験対策:基本情報技術者試験 データ構造とアルゴリズム

無料トライアルでこのコースを視聴する

今すぐ登録して、24,700件以上登録されている、業界エキスパート指導のコースを受講しましょう。

バブルソートで並び替える

バブルソートで並び替える

バブルソートは 最も有名なソートのアルゴリズムです。 ソートの考え方の基本になりますから、 しっかりと理解しておきましょう。 バブルソートは、 基本交換法とも呼ばれますが、 最小または最大の要素を交換しながら 先頭に押し出して 並び替えるソートのアルゴリズムです。 最小の要素が順次移動して 配列の先頭に押し出されてくる様子が、 泡、つまりバブルが水面から 出てくる様子に似ているので バブルソートとも呼ばれます。 バブルソートは、 配列の最後の要素から順に隣同士を比較し、 大小関係が異なれば交換します。 これを先頭の要素まで行うと、 最小の要素が先頭に置かれます。 具体的にバブルソートで 配列要素を並び替えてみましょう。 まず 33 と 29 では、 29 の方が小さいので、 交換が行われます。 次に 74 と 29 では、 29 の方が小さいので 交換が行われます。 18 と 29 では 18 の方が小さいので、 交換は行われません。 92 と 18 では、 比較と交換が行われます。 53 と 18 でも交換が行われます。 23 と 18 も交換が行われます。 67 と 18 も交換が行われます。 すると、18 は先頭要素に置かれ、 最小値として確定します。 次に、最後尾に戻り、 比較と交換が行われます。 この時、先頭要素には、 最小値が確定していますので、 比較の範囲はひとつ狭められます。 先ほどと同じように、 比較と交換を行い、 次に小さな要素を 2番目に押し出していきます。 すると 23 が 配列の2番目に押し出され、 次の最小値として確定します。 このように、ひとつずつ 比較と交換の範囲を狭めながら、 並び替えを行っていきます。 すると、どんどん次の最小値が 先頭に押し出されていきます。 比較交換の範囲が1になれば、 すべての要素が 昇順に並んだことになります。 では、ソースコードを確認してみましょう。 これは、疑似言語で記述した バブルソートのコードです。 ここでは、要素数8の配列の要素を 昇順に並べ替えています。 外側のループは、 i を1から7まで1ずつ増やします。 これに対して内側のループは、 j を8から i+1 まで1ずつ減らします。 二重ループの中で、隣接する要素を比較し、 順序が逆の場合に交換します。 入れ替えは、作業用の変数 temp に…

目次