我下面如何從教程實現python3插入排序算法,但我似乎無法理解爲什麼它是「的J - = 1」在此代碼,而不是J + = 1這個插入排序算法中的「j- = 1」是做什麼的?
sample1 = [5,3,2,4,6]
def insertion_sort(sample):
print("initial sample: ",sample)
for i in range(1,len(sample)):
j = i
while(j!=0 and sample[j] < sample[j-1]):
sample[j-1],sample[j] = sample[j],sample[j-1]
j -= 1 #why this and not j += 1 instead?
print("sorted sample: ",sample)
insertion_sort (SAMPLE1)
因爲Ĵ_decreases_的有序數組下降到0,而不是從0 _increases_多達我。 – Gassa
但是,如果我從for循環開始1,不會讓j = 0的下一次迭代? – Vaderstalk
對於'i = 1',是的。對於'i = 2',首先要設置'j = 1'。對於'i = 10',首先要設置'j = 9'。 – Gassa