2011年7月31日日曜日

開発環境

  • Mac OS X Snow Leopard (OS)
  • WingIDE
  • Script言語: Python

『初めてのコンピュータサイエンス』(Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-463-7)の11章(探索とソート), 11.7(練習問題), 4を解いてみる。

 

4.

バブルソートの関数(リストの先頭にソート済の領域を管理)

コード

def bubble_sort_2(L):
    for i in range(len(L)):
        for j in range(len(L)-1,i,-1):
            if L[j]<L[j-1]:
                L[j], L[j-1]=L[j-1], L[j]

noseテストケース

コード

import nose
from bubble_sort import bubble_sort_2

def test_bubble_1():
    L=[2,1]
    bubble_sort_2(L)
    assert L==[1,2]

def test_bubble_2():
    L=[5,4,3,2,1,9,8,7,6,0]
    bubble_sort_2(L)
    assert L==[0,1,2,3,4,5,6,7,8,9]

def test_bubble_3():
    L=[]
    bubble_sort_2(L)
    assert L==[]

def test_bubble_4():
    L=[0]
    bubble_sort_2(L)
    assert L==[0]

if __name__== '__main__':
    nose.runmodule()

入出力結果

0 コメント:

コメントを投稿