バイナリヒープを使用したダイクストラ時間計算量

Geeklovenerds

G(V、E)を、正のエッジの重みを持つ無向グラフとします。ダイクストラの単一ソース最短経路アルゴリズムは、時間計算量のあるバイナリヒープデータ構造を使用して実装できます。

 1. O(|V|^2)
 2. O(|E|+|V|log|V|)
 3. O(|V|log|V|)
 4. O((|E|+|V|)log|V|)

================================================== ======================

正解は-

  1. O(| E | + | V |)ログ| V |)

================================================== =======================

私のアプローチは次のとおりです-

O(V+V+VlogV+ElogV) = O(ElogV)
  • O(V) 初期化する。
  • O(V) ヒープを構築します。
  • VlogV Extract_Minを実行するには
  • ElogV 減少キーを実行するには

さて、O(ElogV)を取得し、オプションを見ると、グラフがまばらであるため、正しいものはO(VlogV)であると言う人がいます| V | = | E |ですが、私が言ったように、正解はO((| E | + | V |)log | V |)です。それで、私はどこが間違っているのですか?

マット・ティマーマンズ

さて、あなたは複雑さが実際にはO(E log V)であることは正しいです

以来、Eが最大であることができる(V ^ 2 - V)/ 2、これは同じではありませんO(VログV)

すべての頂点にエッジがある場合、V <= 2Eであるため、その場合、O(E log V)= O((E + V)log V)です。これは通常のケースであり、「正解」に対応します。

ただし、技術的には、O(E log V)O((E + V)log V)と同じではありません。これは、Vに切断された頂点が多数存在する可能性があるためです。ただし、その場合、ダイクストラのアルゴリズムは、単一のソースに接続されている頂点のみを検出するため、これらすべての頂点を検出することはありません。したがって、これら2つの複雑さの違いが重要な場合、あなたは正しいですが、「正解」は正しくありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

2部グラフが与えられたときにフィボナッチヒープまたはバイナリヒープを使用するプリムアルゴリズムの時間計算量

分類Dev

O(n)時間計算量を使用した、「逆順」でのバイナリツリーのレベル順トラバーサル

分類Dev

隣接行列と隣接リンクリストを使用した場合のダイクストラのアルゴリズムの時間計算量

分類Dev

C ++ pqによるダイクストラ時間計算量

分類Dev

時間計算量ダイクストラ

分類Dev

AVLツリーとバイナリツリーを使用したこのアルゴリズムの時間計算量はどれくらいですか

分類Dev

インオーダーサクセサ方式を使用したBSTの印刷の時間計算量

分類Dev

ifステートメントを使用したネストされたループの時間計算量

分類Dev

単純なダイクストラのアルゴリズムの時間計算量

分類Dev

キーストロークダイナミクス-飛行時間の計算

分類Dev

以下の新しいクイックソートアルゴリズムの正確な時間計算量と空間計算量を見つける方法

分類Dev

それは複数回の深さを再計算したときに、バイナリツリーがテイク時間Oをバランスされている場合、なぜ、このコードはチェックしない(N Nログ)?

分類Dev

whileループとifステートメントを使用した関数の時間計算量

分類Dev

inloopsの例を使用したループの時間計算量の計算

分類Dev

NetBeansを使用してスクリプトによってロードされたC ++ダイナミックライブラリをデバッグします

分類Dev

シングルトラバーサルを使用してリンクリストで同等のバイナリを計算しますか?

分類Dev

バイナリ変数間のオーバーラップを計算します

分類Dev

ダイクストラアルゴリズムの時間計算の理解

分類Dev

時間計算量:Kストップ内の最も安いフライト

分類Dev

時間計算量:Kストップ内の最も安いフライト

分類Dev

Rを使用したバイナリスパークライン

分類Dev

メンバーの配列を使用したイニシャライザーリスト時間メンバーコンテナーの初期化

分類Dev

時間計算量Pythonスクリプト

分類Dev

複数のアルゴリズムを使用したプログラムの時間計算量

分類Dev

ネストされた反復関数を使用した再帰的アルゴリズムの時間計算量?

分類Dev

ネストされたforループの時間計算量

分類Dev

ネストされたループの時間計算量

分類Dev

時間計算量のネストされたループ

分類Dev

ネストされたwhileループの時間計算量

Related 関連記事

  1. 1

    2部グラフが与えられたときにフィボナッチヒープまたはバイナリヒープを使用するプリムアルゴリズムの時間計算量

  2. 2

    O(n)時間計算量を使用した、「逆順」でのバイナリツリーのレベル順トラバーサル

  3. 3

    隣接行列と隣接リンクリストを使用した場合のダイクストラのアルゴリズムの時間計算量

  4. 4

    C ++ pqによるダイクストラ時間計算量

  5. 5

    時間計算量ダイクストラ

  6. 6

    AVLツリーとバイナリツリーを使用したこのアルゴリズムの時間計算量はどれくらいですか

  7. 7

    インオーダーサクセサ方式を使用したBSTの印刷の時間計算量

  8. 8

    ifステートメントを使用したネストされたループの時間計算量

  9. 9

    単純なダイクストラのアルゴリズムの時間計算量

  10. 10

    キーストロークダイナミクス-飛行時間の計算

  11. 11

    以下の新しいクイックソートアルゴリズムの正確な時間計算量と空間計算量を見つける方法

  12. 12

    それは複数回の深さを再計算したときに、バイナリツリーがテイク時間Oをバランスされている場合、なぜ、このコードはチェックしない(N Nログ)?

  13. 13

    whileループとifステートメントを使用した関数の時間計算量

  14. 14

    inloopsの例を使用したループの時間計算量の計算

  15. 15

    NetBeansを使用してスクリプトによってロードされたC ++ダイナミックライブラリをデバッグします

  16. 16

    シングルトラバーサルを使用してリンクリストで同等のバイナリを計算しますか?

  17. 17

    バイナリ変数間のオーバーラップを計算します

  18. 18

    ダイクストラアルゴリズムの時間計算の理解

  19. 19

    時間計算量:Kストップ内の最も安いフライト

  20. 20

    時間計算量:Kストップ内の最も安いフライト

  21. 21

    Rを使用したバイナリスパークライン

  22. 22

    メンバーの配列を使用したイニシャライザーリスト時間メンバーコンテナーの初期化

  23. 23

    時間計算量Pythonスクリプト

  24. 24

    複数のアルゴリズムを使用したプログラムの時間計算量

  25. 25

    ネストされた反復関数を使用した再帰的アルゴリズムの時間計算量?

  26. 26

    ネストされたforループの時間計算量

  27. 27

    ネストされたループの時間計算量

  28. 28

    時間計算量のネストされたループ

  29. 29

    ネストされたwhileループの時間計算量

ホットタグ

アーカイブ