前提・実現したいこと
Pythonで挿入ソートを実行しようとしていますが、現在のコードだと誤った出力がされてしまいます。
既に完成している正しいコードをみても、現在書いているコードをどのように修正すればいいかわからず、アドバイスをいただきたいです。
発生している問題・エラーメッセージ
出力結果
入力 A = [1,3,2,8] 出力[8, 1, 8, 8]
求めたい結果
[1,2,3,8]
該当のソースコード
Python
1def solution(A): 2 for i in range(len(A)-1): 3 sort(A, i) 4 print(A) 5 6def sort(A,i): 7 tmp = A[i+1] 8 for j in range(i+1, -1, -1): 9 #自分よりも小さい値が見つかったら 10 if A[j] < tmp: 11 #その要素の1つ後ろに挿入する 12 changeindex = j + 1 13 #挿入するために配列のtmpの1つ前から挿入した挿入したいexchangeindexの要素を1つずつ後ろに移動させる 14 for k in range(i+1, -1, -1): 15 A[k] = A[k-1] 16 A[j] = tmp
補足情報(FW/ツールのバージョンなど)
Python3.6
回答1件
あなたの回答
tips
プレビュー