Nel codice, prendendone per buona la correttezza logica, non vedo nessun punto in cui, dopo gli opportuni controlli, sposti gli elementi dell'array per cui è ovvio che l'array che stampi è quello di partenza.