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