![]() |
このサポートページでは、マイナビ出版発行の書籍「アルゴリズムビジュアル大事典」にて作成しましたシンボル、アニメーション、疑似コードを掲載いたします。また、内容のアップデートを行ってまいります。詳しい解説は、本書をご参考にしてください。
アニメーションコントローラの使い方はクイックマニュアルでご確認頂けます。
補足情報が表示されているトピックにつきましては、ご注意ください。その他の訂正等は正誤表をご覧ください。ご質問、不具合等のご報告は、ご遠慮なくy.watanobe@gmail.com(渡部)までお送りください。
|
|
|
データ構造 | 計算量 | ルール | テクニック | |
---|---|---|---|---|
|
スタック |
|
後入先出 (LIFO: Last-In-First-Out) | |
|
キュー |
|
先入先出 (FIFO: First-In-First-Out) | |
|
優先度付きキュー |
|
優先度の高いものから取り出す |
|
アルゴリズム | 計算量 | 安定性 | インプレイス (メモリ効率) |
テクニック | 特徴 | |||
---|---|---|---|---|---|---|---|---|
|
バブルソート |
|
〇 | 〇 |
|
× 実用的ではない | ||
|
選択ソート |
|
× | 〇 |
|
× 実用的ではない | ||
|
挿入ソート |
|
〇 | 〇 |
|
〇昇順に近いデータに対して高速 | ||
|
シェーカーソート |
|
〇 | 〇 |
|
〇昇順に近いデータに対して高速 | ||
|
マージソート |
|
〇 | × |
|
〇 安定でかつ高速 × メモリが必要 |
||
|
クイックソート |
|
× | 〇 |
|
× 基準の選び方で遅くなる 〇 インプレイスで高速 |
||
|
ヒープソート |
|
× | 〇 |
|
× システムによって実行速度が遅くなる可能性がある | ||
|
シェルソート |
|
× | 〇 |
|
× 間隔の選び方によって遅くなる | ||
|
計数ソート |
|
〇 | × |
|
× 要素の値に上限がある |
アルゴリズム | 計算量 | 距離 | テクニック | |
---|---|---|---|---|
|
幅優先探索 |
|
単一始点から全てのノードへの最短経路(エッジ数) |
|
|
ダイクストラのアルゴリズム (線形探索) |
|
単一始点から全てのノードへの最短経路 ※負の重みがあってはならない |
|
|
ダイクストラのアルゴリズム |
|
単一始点から全てのノードへの最短経路 ※負の重みがあってはならない |
|
|
ベルマンフォードのアルゴリズム |
|
単一始点から全てのノードへの最短経路 負の重みがあってもよい 負のサイクルを検出可能 |
|
|
ワーシャルフロイドのアルゴリズム |
|
全点対間の最短経路 負の重みがあってもよい 負のサイクルを検出可能 |
データ構造 | 計算量 | メモリ効率 | 順序付き | 応用 | |
---|---|---|---|---|---|
|
連結リスト |
|
〇 | 〇順序付き | リスト、辞書 |
|
ハッシュ表 |
|
× | × | 辞書 |
|
二分探索木 |
|
〇 | 〇整列済み | 辞書、集合、 優先度付きキュー、最大・最小 |
|
トリープ |
|
〇 | 〇整列済み | 辞書、集合、 優先度付きキュー、最大・最小 |