Когда выполняется моя функция, оператор if не выполняется
Я пытаюсь сделать простую пузырьковую сортировку, и оператор if, который я использую для сортировки чисел в моем массиве, не выполняется. Кто-нибудь может помочь мне заставить это работать?
Вот мой код:
def Bubble( a ):
Flag = False
while not Flag:
Flag = True
for i in range(0, len(a), -1):
if a[i] > a[i+1]: #this if statement isn't running
a[i], a[i + 1] = a[i + 1], a[i]
print("hi")
Flag = False
def main():
a = GRN(10)
acopy = a[:]
Bubble(a)
acopy.sort()
print(a==acopy)
print(a)
print(acopy)
main()
1 ответ
Решение
range(0, len(a), -1)
всегда пустой список, потому что шаг отрицательный. Это не if
заявление виновато, но for
петля. Что вам нужно range(len(a)-1)
,