Skip to content

p.189:code11.4の計算量および章末問題11.8の計算量について #22

@shuhei23

Description

@shuhei23

p. 189 の グラフの連結成分の個数を数える問題について,計算量は $O(|V|+|E|\alpha(|V|))$ となっていますが,
オーダ表記内第1項については $|V|\alpha(|V|)$ となり,全体として $O(|V|\alpha(|V|)+|E|\alpha(|V|))$
なるのではないでしょうか.
具体的には,code 11.4 の55--57行目で頂点xの根を求める計算量がp.185より
ならし計算量で $O(\alpha(N))$ (プログラム中では $N = |V|$ )となり,各々の辺に対して反復されるので,
$O(|V|\alpha(|V|))$ となると思われます.

for ( int x = 0; x < N; ++x){
    if (uf.root(x) == x) ++res; 
}

あわせて,p. 193の章末問題11.1の計算量の解析についても,各々の辺を除いた状況下で上述の手順が繰り返されるため
$(問題の計算量) = O(|E| * (上記の手順の計算量))$ となるかと思うので,テキストの表式と異なる結果になる
可能性があるかと考えられます.
よろしくご検討のほど,お願いいたします.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions