Загрузил код в визуализатор и вижу что 6 и 7 строчки выполняются несколько раз до интераци a[3] и дальше строка 8, 9 и тут меняются местами a[3] и a[4] . Я думаю как же програма узнала что нужно поменять их местами если она еще не дошла до интерации a[4]. На скрине видно что интерация еще а3 , а 96 и 67 уже поменялись местами

