複雑さは次のように導出されます。初期化フェーズの費用はO(V)です。whileループが実行され|V|回。for内に入れ子ループwhileループが実行されるdegree(u)回。最後に、ハンドシェイクレンマは、Θ(E)暗黙のDECREASE-KEY があることを意味します。そのため、複雑さがあります:Θ(V)∗TEXTRACT−MIN+Θ(E)∗TDECREASE−KEY。
実際の複雑さは、アルゴリズムで実際に使用されるデータ構造によって異なります。配列TEXTRACT−MIN=O(V),TDECREASE−KEY=O(1)、複雑度はO(V2)で最悪の場合。
バイナリヒープを使用して、TEXTRACT−MIN=O(logV),TDECREASE−KEY=O(logV)、複雑さはO(ElogV)最悪の場合。理由は次のとおりです。グラフが接続されているため、|E|≥|V|−1、Eは最大でV2(最悪の場合、密なグラフの場合)。おそらく、あなたはこの点を逃しました。
フィボナッチヒープを使用すると、 TEXTRACT−MIN=O(logV)償却され、TDECREASE−KEY=O(1)償却され、複雑度はO(E+VlogV)最悪の場合。