LoginSignup
4
3

More than 3 years have passed since last update.

『アルゴリズム図鑑』のアルゴリズムをPython3で実装(バブルソート編)

Posted at

この記事について

この記事では筆者が『アルゴリズム図鑑』を読んで学んだアルゴリズムについて、Python3での実装例を紹介したいと思います。今回のアルゴリズムはバブルソートです。筆者は素人です。色々教えていただけると幸いです。

筆者はPython2のことをよく知りませんが、自分がPython3を使ってるっぽいことだけはわかっています(Python3.6.0かな?)。そのため、記事のタイトルではPython3としました。

バブルソートについて

問題設定は下記とします。アルゴリズムの説明は省略します。『アルゴリズム図鑑』を参照ください。

問題

与えられた数の列に対して、小さい数から順に並べ替えた列を返す。
例:
 4, 3, 1, 2
→ 1, 2, 3, 4

実装コードと実行結果

実装したコードを以下に示します。最初に変数dataに代入されているリストが処理対象の数の列です。

コード

bubble_sort.py
data = [4, 3, 1, 2]

print("input    :" + str(data))

data_len = len(data)

for k in range(0, data_len - 1):
    i = data_len - 1
    while(i - 1 >= k):
        if data[i - 1] > data[i]:
            temp_data = data[i - 1]
            data[i - 1] = data[i]
            data[i] = temp_data
        else:
            pass
        i -= 1

print("output   :" + str(data))

実行結果

$ python bubble_sort.py
input    :[4, 3, 1, 2]
output   :[1, 2, 3, 4]

終わりに

気づいた点などあればご指摘、ご質問いただければと思います。特にコードの書き方の改善点などあれば勉強になるなと思います。

4
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3