Pythonでバブルソートを実装する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでバブルソートを実装する方法について現役エンジニアが解説しています。ソートは並び替えのことで、数値や文字列の昇順や降順があります。今回はソートアルゴリズムとしてPythonでのバブルソートを解説します。バブルソートとは二つ値を比較して大小を決めて並び替えます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Pythonでバブルソートを実装する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonでバブルソートを実装する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

バブルソートとは

バブルソートとは、隣合う要素に対して比較を行いながらソートを行うアルゴリズムです。

ソートは、ランダムに並べたデータに対して、数値を大きい順から小さい順やその逆の順番に並べ替えるプログラムです。

プログラムの基本の一つで頻繁に使用されるため、コンピュータ創成期より様々なアルゴリズムが考えられて来ました。

配列の数値をソートする操作は、実務では非常に多いため、しっかりと覚えていきましょう。

 

 

バブルソートのアルゴリズム

今回の対象データは以下の数値群です。

左から大きい数が並ぶようにソートしてみましょう。

1 2 9 8 0 6 7 5 4 3

バブルソートの並び替えの手順は、

  1. まず左はしの数をA[n] とします。
  2. 一つ右隣の数値は、A[n+1]としましょう。
  3. A[n]とA[n+1]を比べて、A[n+1]が大きい場合は、A[n]とA[n+1]の数値を交換(スワップ)します。
  4. ①の1つ右の数に移動して、①~③の手順が数値の並び替えが終わるまで繰り返されます。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

それでは実際のコードを書いてみましょう。

 def BubbleSort(num):
    for i in range(len(num)):
        for j in range(len(num)-1, i, -1):
            if num[j] < num[j-1]:
                num[j], num[j-1] = num[j-1], num[j]

    return num

 

まとめ

他にもソートはたくさんの方法があるため、今回のコードも含めて色々と試してみましょう。

 

執筆してくれたメンター

坂下雄一(さかしたゆういち)

外資系のEDAベンダで、エンジニアとして働いた後、東南アジアにて起業しました。

PythonはEDAのコマンド自動化、テスト環境構築の時に初めて使用し、素晴らしいと思い、今に至ります。

EDAの環境構築、手順の自動化は、tcl/tkというコマンド言語がメインですが、Pythonで置き換える作業も最近は盛んになってきています。

 

大石ゆかり

Pythonでバブルソートを実装する方法がとてもよくわかったので良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。