全4275文字
PR

実用的なソフトウエアを開発するにはアルゴリズムの知識は欠かせない。基礎から機械学習まで、厳選した10個のアルゴリズムをPythonによる実装とともに解説する。

[3 基礎] バブルソート

 二分探索はデータがソートされていることを前提としていました。それでは、ソートはどのようなアルゴリズムで実現するのでしょうか。

 ソートのアルゴリズムはたくさんあります。その中で「バブルソート」は、効率は悪いのですが、仕組みが簡単なので容易に実装できるというメリットを持つアルゴリズムです。

 バブルソートは、隣同士のデータの大小を比較し、小さい順(または大きい順)に並び替える(位置を交換する)作業を繰り返すと、最終的にソートが完了する、というものです。例えば、次のリストdataのソートを考えてみましょう。

[画像のクリックで拡大表示]

 このdataをバブルソートでソートする過程を図解すると、図1のようになります。バブルソートは、データの比較と交換を、データの末尾から順に行います。その際、データの動きが水底から上がってくる泡(バブル)のようなので、バブルソートという名称なのです。

図1●バブルソートの動き
図1●バブルソートの動き
[画像のクリックで拡大表示]