in place merge (hopefully linear time)