我在教自己的Python,我遇到了一個相對簡單的概念。目標是使用插入排序以升序對列表進行排序。這裏是代碼:簡單插入的邏輯僵局Sort
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]的列表,並且我已經進行了第二次迭代,那麼現在我的列表是不是[6,6,4,3,1]?我分配A [i + 1](在第一種情況下它將是5)A [i]的值(在第一種情況下爲6)。我的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的事實只是偶然的問題,這是關於理解算法實現的邏輯。 –