This week's book giveaway is in the General Computing forum. We're giving away four copies of Arduino in Action and have Martin Evans, Joshua Noble, and Jordan Hochenbaum on-line! See this thread for details.
What you're trying to do is swap values at the j-1 and j positions of the array a. So, if a holds the values: 8 2 1 7 3, and you are comparing the 2 and the 1, then you swap them to get 8 1 2 7 3. Eventually, after enough swapping, the whole array will be sorted (if the rest of your logic is right).
Unfortunately, the way you've written SWAP() there's no way it will work, no matter how the "missing piece" is filled in. That is, whatever you do in the method, the array will be unchanged after you finish. Now, if you defined it like:
then it would be possible to make it work. Give that a try and see if you can figure it out.