開発環境
- 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(練習問題), 2を解いてみる。
2.
ソートするリスト
[6, 5, 4, 3, 7, 1, 2]
選択ソート、挿入ソートのアルゴリズムを使ってこのリストをソートした時、ループの各イテレーション終了後、リストの内容がどう変わっていってるか。
(a) 選択ソートの場合
- [1, 5, 4, 3, 7, 6, 2]
- [1, 2, 4, 3, 7, 6, 5]
- [1, 2, 4, 3, 7, 6, 5]
- [1, 2, 3, 4, 7, 6. 5]
- [1, 2, 3, 4, 7, 6, 5]
- [1, 2, 3, 4, 5, 6, 7]
- [1, 2, 3, 4, 5, 6, 7]
(b) 挿入ソートの場合
- [6, 5, 4, 3, 7, 1, 2]
- [5, 6, 4. 3, 7, 1, 2]
- [4, 5, 6, 3, 7, 1, 2]
- [3, 4, 5, 6, 7, 1, 2]
- [3, 4, 5, 6, 7, 1, 2]
- [1, 3, 4, 5, 6, 7, 2]
- [1, 2, 3, 4, 5, 6, 7]
確認
コード
def selection_sort(L):
i=0
while i!=len(L):
smallest=find_min(L,i)
L[i],L[smallest]=L[smallest],L[i]
i=i+1
print L
def find_min(L,b):
smallest=b
i=b+1
while i!=len(L):
if L[i]=L[b]:
i=i-1
value=L[b]
del L[b]
L.insert(i,value)
入出力結果
確認できた!
0 コメント:
コメントを投稿