*GBAHC
A is smallest so we swap A and G
A*BGHC
B is smallest so swap B with B (don't move)
AB*GHC
C is smallest so swap G with C
ABC*HG
G is smallest so swap G with H
ABCG*H
The alternative is your approach which would force you to move a lot of the array down one place on each step.