任意の置換は互換の積で表せるので、swap繰り返せばin-placeで可能。
http://rikei-index.blue.coocan.jp/senkei/teigi4senkei.html