#この記事について
この記事では筆者が『アルゴリズム図鑑』を読んで学んだアルゴリズムについて、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]
#終わりに
気づいた点などあればご指摘、ご質問いただければと思います。特にコードの書き方の改善点などあれば勉強になるなと思います。