AT's Blog

プログラミング、回路設計、ギター、音楽、読書とか

【Python】【アルゴリズム】Django、単純交換法(バブルソート)

Django

せっかくPythonとWeb系技術をかじっているのだからと、Djangoに手を出し始めました。

いきなりアプリを作ってみよう!みたいなサイトを見ても仕組みがさっぱり分からないので、 とりあえずシステムの全体像を把握すべく、公式サイトのチュートリアルをガリガリ進めています。

Django ドキュメント | Django documentation | Django

Model、View、URLconfの関係がぼんやりと頭の中でつながってきました。

単純交換法(バブルソート

  • アルゴリズムを、はじめよう」第8章の単純交換法(バブルソート)をPython3で実装してみました。
  • 0~4までの整数を要素にもつリストを昇順にソートします。
  • 要素が泡のように浮かび上がってくることからバブルソートと呼ぶそうです。
import random

ls = list(range(0,5))
random.shuffle(ls)
print("start:",ls)

for k in range(0, len(ls)-1):
    print("k :", k)
    for i in range(len(ls)-1, k, -1):
        if ls[i-1] > ls[i]:
            ls[i], ls[i-1] = ls[i-1], ls[i]
        print("i :",i,ls)

print("end:",ls)
>python3 bubble_sort.py
start: [1, 0, 4, 3, 2]
k : 0
i : 4 [1, 0, 4, 2, 3]
i : 3 [1, 0, 2, 4, 3]
i : 2 [1, 0, 2, 4, 3]
i : 1 [0, 1, 2, 4, 3]
k : 1
i : 4 [0, 1, 2, 3, 4]
i : 3 [0, 1, 2, 3, 4]
i : 2 [0, 1, 2, 3, 4]
k : 2
i : 4 [0, 1, 2, 3, 4]
i : 3 [0, 1, 2, 3, 4]
k : 3
i : 4 [0, 1, 2, 3, 4]
end: [0, 1, 2, 3, 4]