Pythonでバブルソート

2014-01-09
このエントリーをはてなブックマークに追加

そういやPythonでバブルソートって書いたことなかったかも、って思ったので書いてみた。
バブルソート:wikipedia)

「バブルソートは後ろからだろ」って言われちゃうと仰るとおりですって感じなんですけど、まあ値総当りで並べ替えてるので良しとしていただけるとありがたい。

もうちょっとスマートになるように書き直すかなぁ。

# -*- encoding: utf-8 -*-

def main():
    _l = [7, 6, 3, 1, 2, 5, 8, 4, 0, 9]
    _r = []

    for i, v in enumerate(_l):

        if len(_r) == 0:
            _r.append(v)
            continue

        for ii, vv in enumerate(_r):
            if v < vv:
                _r.insert(ii, v)
                break

        if not v in _r:
            _r.append(v)

    print(_r)

if __name__ == '__main__':
    main()

結果はこちら

> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Tags: