私は自分自身にPythonを教えているし、比較的単純なコンセプトでは難しかった。目標は、挿入ソートを使用して昇順にソートすることです。コードは次のとおりです。単純な挿入でのロジックインパース
def InsertionSort(A):
for j in range(1, len(A)):
key = A[j]
i = j - 1
while (i >=0) and (A[i] > key):
A[i+1] = A[i] # this is the not understood point
i = i - 1
A[i+1] = key
print A
太字のステップがどのように機能するかわかりません。例えば、私が[6,5,4,3,1]のリストを持っていて、2番目の繰り返しになった場合、私のリストは[6,6,4,3,1]になりませんか?私はA [i](最初のケースでは5となる)A [i](最初のケースでは6)の値をA [i + 1]に割り当てます。私の5に何が起こったのですか?コードでの私の最初の試みは:
def InsertionSort(A):
for j in range(1, len(A)):
key = A[j]
i = j - 1
while (i >=0) and (A[i] > key):
temp = A[i+1]
A [i+1] = A[i]
A[i] = temp
i = i - 1
A[i+1] = key
print A
この方法も有効でした。私はなぜ最初のものも同様に理解していない。誰でも刺すようにしたいですか?
研究! =与えられたプログラミング言語の研究。あなたがPythonを使用しているという事実は、アルゴリズムの実装のロジックを理解することに関する質問にのみ付随しています。 –