クイックソートを可視化

ピボットの選び方と分割方式を変え、比較・交換の様子を1手ずつ追えます。自分の数列を入力することもできます。

ピボット比較中分割の境界位置が確定処理範囲の外
0 / 0
40
40/s

数値をカンマか空白で区切って入力できます。ピボットの選び方を変えると同じ配列を再計算し、5方式で比較できます。

比較数0
交換数0
再帰の最大深さ0
n log₂n / n(n−1)/2—
呼び出し範囲要素数ピボット確定位置比較数

設定の意味

ピボットは分割の基準値です。先頭・末尾・中央・3要素の中央値・ランダムから選べます。LomutoとHoareは分割の手順が異なるため、比較数や交換数も変わります。

まず試してみること

入力を「整列済み」、ピボットを「先頭」にして最後まで進めてください。次に中央やランダムへ切り替え、同じ配列の比較数と再帰の深さを比べます。

結果の見方

比較数と交換数は実行時間そのものではありませんが、処理の増え方を見る手掛かりです。整列済み入力と端のピボットの組み合わせでは、方式によって二次時間の悪いケースが現れます。

次は、何を確かめる?

このテーマを深く読む

クイックソートに「並べ替え済みの配列」を食わせたら、比較回数がバブルソートと1回も違わなかった

実験結果と考察を読む
このツールを共有

ほかの実験ツール · 実装で学ぶ · この実験の解説記事