選択ソート(Selection Sort)ビジュアライザー
ステップ実行、速度調整、カスタム入力、比較/交換回数のライブカウンター、擬似コードを備えたSelection Sortのアニメーション。すべてブラウザ内だけで完結します。
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 ハイライトされる擬似コード(pseudocode)と、リアルタイムの比較/交換カウンターを見比べながら確認できます。
このツールを使う理由
- 各パスで残りの要素から最小値が選ばれ、先頭に配置される様子を確認できます。
- 入力データの並び順に関係なく、比較回数が常に同じになることがわかります。
- 書き込みコストが高い場面で役立つ、交換回数が最大n−1回に抑えられる理由をカウンターで確認できます。
- すべてブラウザ内で完結。登録もアップロードも不要です。
よくある質問
選択ソート(Selection Sort)とは何ですか?
選択ソートは配列を「整列済み」と「未整列」の2つの部分に分け、各パスで未整列部分をスキャンして最小値を見つけ、それを境界位置と交換していくアルゴリズムです。
選択ソートの時間計算量はどれくらいですか?
最良・平均・最悪のすべてのケースでO(n²)です。最小値を探すために毎回残り全ての要素をスキャンする必要があるためです。
選択ソートは安定(stable)なソートですか?
いいえ、安定ではありません。離れた位置にある最小値を交換する際に、同じ値を持つ要素同士の相対的な順序が入れ替わってしまうことがあります。ただし、連結リスト(linked-list)を用いた変種では安定にすることも可能です。
選択ソートはどんな場面で役立ちますか?
書き込み回数を最小限に抑えたい場合に有効です。交換回数は最大でもn−1回で済み、バブルソートよりずっと少なくなります。それ以外の場面では、一般的に挿入ソートの方が好まれます。
選択ソート(Selection Sort)ビジュアライザー とは?
選択ソート(Selection Sort)ビジュアライザーは、未整列部分から最小値を繰り返し探し出し、それを境界位置と交換していくSelection Sortの動作をシミュレートするツールです。常にO(n²)回の比較が必要になる一方で、交換回数は最大でもn−1回に抑えられる理由が視覚的にわかります。
機能
ステップごとのアニメーション
各パスで最小値が見つかり、先頭に交換される様子を確認できます。
計算量
時間計算量: すべてのケースでO(n²)。空間計算量: O(1)。インプレースだが安定ではない。交換回数はO(n)のみ。
100%プライベート
すべてブラウザ内で完結し、何もアップロードされません。
例
Input
[64, 25, 12, 22]
Output
select 12 → [12,25,64,22]; 22 → [12,22,64,25]; 25 → [12,22,25,64] (sorted)
主な用途
-
1
選択ロジックを学ぶ
入力に関係なく比較回数が常に~n²/2に固定される理由を確認します。
-
2
書き込みを最小化する
交換・書き込みのコストが高い場合に選択ソートが役立つ理由を理解します。
-
3
挿入ソートとの比較
固定のO(n²)と挿入ソートの最良ケースO(n)を比較します。
Zerethonの選択ソート可視化ツールは、ブラウザ上でアルゴリズムをアニメーション表示し、未ソート領域の最小値を繰り返し選び出して正しい位置に交換します。選択ソートは常にO(n²)の時間で実行され(最良・平均・最悪のいずれも同じ)、追加空間はO(1)です。インプレースですが安定ではありません。交換回数はO(n)に抑えられます。
- カテゴリ
- アルゴリズム
- 料金
- 無料
- プライバシー
- ブラウザベース
- 登録
- 不要
参考文献
- MIT OCW 6.006 — アルゴリズム入門(CLRS) — MIT OpenCourseWare
- VisuAlgo — ソート — VisuAlgo (NUS)
- 選択ソート — Wikipedia
プライバシー
明記されない限り、データがブラウザの外に送信されることはありません。選択ソート(Selection Sort)ビジュアライザー は完全にクライアント側で動作します — サーバーへのアップロードなし、ログなし、入力内容のトラッキングなし。
初めての方へ。Big-O 解析付きのステップバイステップ解説を読む: Sorting Algorithms を学ぶ →
関連ツール
バブルソート ビジュアライザー
バブルソートの動きをアニメーションで確認できるツール。ステップ実行や速度調整、カスタム入力データ、比較・交換回数のリアルタイム表示、擬似コードの表示に対応しています。すべてブラウザ内だけで動作します。
ツールを開く挿入ソート(Insertion Sort)ビジュアライザー
挿入ソートをアニメーションで可視化。ステップ実行や速度調整、カスタム入力、比較回数・書き込み回数のリアルタイム表示、疑似コード(pseudocode)表示に対応。すべてブラウザ内で完結します。
ツールを開くマージソート ビジュアライザー
マージソートの動きをアニメーションで再現するツールです。ステップ実行、速度調整、独自のデータ入力、比較・書き込み回数のリアルタイム表示、擬似コード表示に対応。すべてブラウザ上だけで動作します。
ツールを開くクイックソート・ビジュアライザー
ピボットとパーティションをハイライト表示しながらクイックソートをアニメーション表示。ステップ実行、速度調整、カスタム入力、リアルタイムのカウンター、擬似コードにも対応。ブラウザ上ですぐに動かせます。
ツールを開くZerethon Social で作成・共有・成長しよう
無料登録。ポイントを獲得し、実績を集め、世界中のクリエイターとつながりましょう。