開発環境
- 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 コメント:
コメントを投稿