Это моя попытка вставного рода в Python:Правильно ли это сортировка?
def insert(alis):
for i in range(1,len(alis)):
currel = alis[i]
j = i
while j > 0 and alis[j]<alis[j-1]:
alis[j] = alis[j-1]
alis[j-1]= currel
j=j-1
print (alis)
alis = [3,2,6,2,1,678,23,98]
insert(alis)
Это похоже на работу, но дело в том, что озадачивает меня, скажет
alis = [4,3,2,1]
После i = 1
, alis = [3,4,2,1]
. Поэтому, когда alis[2]
установлено на 4
, это не изменит значение currel
от 2
до 4
? Значит, вы бы получили [3,4,4,1]
? Но похоже, что это не так.
Но так как куррель связан с alis на «i», не будет ли изменение в alis эффектом currel? – ls9
Это * не * связано с 'alis'. Он связан со значением, которое имеет ссылка 'alis [i]' * * *. –
Извините, но я все равно не понимаю. Но, с другой точки зрения, могу ли я правильно сказать, что куррель остается значением, которое он задал до цикла while, потому что вы не вернулись и не обновили currel после цикла while? По этому рассуждению значение курсора остается неизменным до тех пор, пока мы не перейдем к следующему значению i, поэтому вся система работает. – ls9