Когда выполняется моя функция, оператор 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),

Другие вопросы по тегам