私の考えが間違っている場合は、私を訂正してください。私はBigO(V + E)= BigO(V^2)だと思います。グラフの隣接リストのBigOが(V + E)で、(V^2)でないのはなぜですか?
私の考えは以下の通りです。
完全なグラフのエッジ= n *(n-1)/ 2。
EとVからnへの切り替えは、私がそのように思う方が簡単だからです。
E = N *(N-1)/ 2
V = N
ビーゴ(V + E)=>ビーゴ(N + N *(N-1)/ 2)=>ビーゴ( N^2)
バックV.
に切り替えnは=>ビーゴ(V^2)
私は何かが足りないのですか? BigO(V + E)を使う理由BigO(V^2)を使わないのはなぜですか?
| E | = | V | *(| V | -1)/ 2となる。もしそれがクリークでなければ、| E | <| V | *(| V | -1)/ 2であり、実際には疎なグラフでは非常に小さくなります。 –
No. O(V^2)は、Vの固定値に対してEが増加するにつれて関数が大きくなるという事実を無視します。最悪の場合はアルゴリズムが最悪の場合の入力*同じサイズ*の別の入力と比較します。 – beaker
@beakerここで悪いケースが当てはまる理由を説明できますか?エッジの入力は変化する可能性がありますか? – bluejimmy