クイックソート・ビジュアライザー
ピボットとパーティションをハイライト表示しながらクイックソートをアニメーション表示。ステップ実行、速度調整、カスタム入力、リアルタイムのカウンター、擬似コードにも対応。ブラウザ上ですぐに動かせます。
Code examples
Ready-to-copy reference implementations. Free to use in your own projects and assignments.
使い方
- 1 Playを押すと、各パーティション処理でピボットが正しい位置に収まり、配列がその周りで分割されていく様子を確認できます。
- 2 Stepを使うと、比較を1回ずつ進めながらパーティションのポインタの動きを追えます。
- 3 Custom inputの欄に好きな数値を入力し、Applyを押してください。
- 4 ハイライトされる擬似コードと、リアルタイムで更新される比較・交換回数のカウンターを見比べてみましょう。
このツールを使う理由
- ピボットを軸にした分割が、分割統治法(divide-and-conquer)による再帰処理をどう導くかがわかります。
- クイックソートが実務上もっとも高速な比較ソートとされることが多い理由を理解できます。
- ピボットの選択が悪い場合(たとえばすでにソート済みのデータなど)に、最悪計算量O(n²)に陥る様子を数値で確認できます。
- 処理はすべてブラウザ内で完結します。登録もアップロードも不要です。
よくある質問
クイックソートとは何ですか?
クイックソートは、まずピボットを1つ選び、それより小さい要素を左側に、大きい要素を右側に配置するように配列を分割し、その後両側をそれぞれ再帰的にソートするアルゴリズムです。このツールでは、最後の要素をピボットとするLomuto方式を採用しています。
クイックソートの時間計算量はどれくらいですか?
平均的にはO(n log n)ですが、ピボットが常に最小値または最大値になってしまう最悪のケースではO(n²)まで悪化します。ピボットをランダムに選ぶ、あるいは median-of-three 方式を使うことで、実務上こうした事態を避けられます。
クイックソートは安定ソート(stable)ですか?
いいえ、安定ソートではありません。パーティション処理中の交換によって要素が配列内を大きく移動するため、同じ値を持つ要素同士の順序が入れ替わることがあります。追加メモリを使うことで安定版のクイックソートを実現する派生アルゴリズムも存在します。
クイックソートはなぜこれほど広く使われているのですか?
インプレース(追加のメモリをほとんど使わない)でソートでき、キャッシュ効率が良く定数項も小さいため、最悪ケースの計算量に制約があるにもかかわらず、実際のデータではマージソートやヒープソートより高速になることが多いからです。
クイックソート・ビジュアライザー とは?
クイックソート・ビジュアライザーは、クイックソートアルゴリズムの動きをアニメーションで再現するツールです。ピボットを1つ選び、そのピボットを軸に要素を分割してから、両側をそれぞれ再帰的にソートしていきます。このツールはLomutoパーティション方式を採用しており、クイックソートが平均でO(n log n)の計算量を持つ一方、ピボットの選び方が悪いとO(n²)まで悪化しうる理由を視覚的に理解できます。
クイックソート・ビジュアライザー は Zerethon Tools が提供する無料の アルゴリズム ユーティリティです。ピボットとパーティションをハイライト表示しながらクイックソートをアニメーション表示。ステップ実行、速度調整、カスタム入力、リアルタイムのカウンター、擬似コードにも対応。ブラウザ上ですぐに動かせます。. ブラウザ上で完全に動作します — 登録不要、アップロード不要。
- カテゴリ
- アルゴリズム
- 料金
- 無料
- プライバシー
- ブラウザベース
- 登録
- 不要
プライバシー
明記されない限り、データがブラウザの外に送信されることはありません。クイックソート・ビジュアライザー は完全にクライアント側で動作します — サーバーへのアップロードなし、ログなし、入力内容のトラッキングなし。
初めての方へ。Big-O 解析付きのステップバイステップ解説を読む: Sorting Algorithms を学ぶ →
比較
関連ツール
バブルソート ビジュアライザー
バブルソートの動きをアニメーションで確認できるツール。ステップ実行や速度調整、カスタム入力データ、比較・交換回数のリアルタイム表示、擬似コードの表示に対応しています。すべてブラウザ内だけで動作します。
ツールを開く挿入ソート(Insertion Sort)ビジュアライザー
挿入ソートをアニメーションで可視化。ステップ実行や速度調整、カスタム入力、比較回数・書き込み回数のリアルタイム表示、疑似コード(pseudocode)表示に対応。すべてブラウザ内で完結します。
ツールを開く選択ソート(Selection Sort)ビジュアライザー
ステップ実行、速度調整、カスタム入力、比較/交換回数のライブカウンター、擬似コードを備えたSelection Sortのアニメーション。すべてブラウザ内だけで完結します。
ツールを開くマージソート ビジュアライザー
マージソートの動きをアニメーションで再現するツールです。ステップ実行、速度調整、独自のデータ入力、比較・書き込み回数のリアルタイム表示、擬似コード表示に対応。すべてブラウザ上だけで動作します。
ツールを開くZerethon Social で作成・共有・成長しよう
無料登録。ポイントを獲得し、実績を集め、世界中のクリエイターとつながりましょう。