このアルゴリズムは、線形時間(o("n"))のin-placeアルゴリズムである。