Il modo migliore per capirlo è provare ad eseguire il programma a mano con carta e penna simulando tutti i passi eseguiti in ogni iterazione dei due for. Il corpo dell'if serve ad effettuare uno scambio tra l'elemento i-esimo e quello successivo, in questo modo, se l'elemento i-esimo è minore del successivo, va a spostarsi in una posizione di indice minore; nel caso peggiore un elemento che si trova in ultima posizione dovrà spostarsi dall'ultima posizione alla prima, con n -1 scambi successivi. Quindi ci vuole un primo for; il secondo for interno è quello che ad ogni iterazione effettua uno scambio pr ogni coppia di elementi contigui.