IT用語帳

ダイクストラ法

Dijkstra's Algorithm

だいくすとらほう

重み付きグラフにおいて、始点から全ての頂点への最短経路を求めるアルゴリズム。辺の重みが非負の場合に使用でき、貪欲法に基づく。計算量はO(V²)だが、優先度付きキューを使うとO((V+E)log V)に改善できる。
アルゴリズムとプログラミング > アルゴリズム

関連キーワードの用語

FE動的計画法

最適化問題を部分問題に分割し、各部分問題の解を記憶しながら全体の最適解を求めるアルゴリズム設計手法。重複する部分問題を再計算せずに済むため効率的。ナップサック問題や最短経路問題に応用される。

FE時間計算量

アルゴリズムの実行に必要な計算ステップ数を入力サイズの関数として表したもの。オーダー記法O(n)で表現され、O(1)、O(log n)、O(n)、O(n log n)、O(n²)などがある。アルゴリズムの効率を評価する基本指標。

FEバブルソート

隣接する要素を比較して交換を繰り返すことでデータを整列するアルゴリズム。平均・最悪計算量ともにO(n²)で効率は良くないが、アルゴリズムが単純で理解しやすい。安定ソート。

FE選択ソート

未整列部分から最小値(または最大値)を見つけて先頭に移動する操作を繰り返す整列アルゴリズム。計算量はO(n²)で、交換回数が少ないがデータ比較は多い。不安定ソート。

FE挿入ソート

未整列部分の先頭要素を整列済み部分の適切な位置に挿入する操作を繰り返す整列アルゴリズム。平均・最悪計算量はO(n²)だが、ほぼ整列済みのデータに対してはO(n)で高速。安定ソート。

FEマージソート

データを半分ずつ再帰的に分割し、整列しながら併合(マージ)する整列アルゴリズム。分割統治法に基づく。最悪計算量がO(n log n)で安定しているが、作業用メモリが追加で必要。安定ソート。