この記事について
この記事では筆者が『アルゴリズム図鑑』を読んで学んだアルゴリズムについて、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)forkinrange(0,data_len-1):i=data_len-1while(i-1>=k):ifdata[i-1]>data[i]:temp_data=data[i-1]data[i-1]=data[i]data[i]=temp_dataelse:passi-=1print("output :"+str(data))
実行結果
$ python bubble_sort.py
input :[4, 3, 1, 2]
output :[1, 2, 3, 4]
終わりに
気づいた点などあればご指摘、ご質問いただければと思います。特にコードの書き方の改善点などあれば勉強になるなと思います。