В настоящее время я нашел этот код, изучая видео.Тем не менее, в коде есть недостаток, о котором было сказано, но я не могу понять часть алгоритма и почему этот недостаток является «недостатком».
i = len(numList) - 1
while i > 1:
j = 0
while j < i:
# If the value on the left is bigger switch values
if numList[j] > numList[j+1]:
temp = numList[j]
numList[j] = numList[j + 1]
numList[j + 1] = temp
else:
print()
j += 1
i -= 1
for k in numList:
print(k, end=", ")
print()
Код должен упорядочивать числа из спискачисел, однако я не могу понять две вещи из этого:
Одна - «Почему 1 вычитается из« я »?»
i = len(numList) - 1
И, во-вторых, когда последний номер алгоритма равен «1», алгоритм не упорядочит числа должным образом.Например, список «4, 2, 6, 3, 1» будет упорядочен как «2, 1, 3, 4, 6» вместо правильных «1, 2, 3, 4, 6».Люди из комментариев указали, что причина этого в том, что это должно быть «while i> 0» или «while i> = 1» вместо «while i> 1».
while i > 1:
Однако я не могу понять, почему это так.