Can anyone explain to me each step of this code?
I know that its a recursive bubble sort but i can't figure out how he does that.

Here is the code.
http://pastebin.com/fFbBbPBa

I know is that it extends with augment() method (Line 24). But i don't know why it uses that boolean array in both cases (next() and augment()).
I can't understand the part after it compares a > b and returns true. So a > b (Line 83).

Thanks! I really need this!