Why loop and swaps?
I thought it'd be as simple as 
lowerBound + insertInPlace ?