これは、ほぼ線形の時間で実行できます。
順列をとし、k = k (π )を単一のエッジ(u 、v )をπに対してチェックするために必要なステップ数とします。次に、G iのM iエッジのそれぞれがπと互換性があることを確認するだけで十分です。これは、O (k M i)時間またはO (k ∑π= (v1、… 、vメートル)k = k (π)(u 、v )πM私G私πO (k M私)全体。O (k ∑ M私)
前処理することで、ログのmエントリを含む配列でkを2つのルックアップに減らすことができます。πkメートルサイズ、および配列内の2つの(log m )ビットエントリ間の比較。配列要素 a [ w ]には、順序付きリストと見なされる π内の wのインデックスが含まれます。これは、 k = O (logログメートル(ログ m )a [ w ]wπ得 O ((ログk = O (ログm )上限の全体的な時間。O ((ログm )∑ M私)
@mjqxxxxが指摘するように、すべてのグラフのすべてのエッジが関連している可能性があります。これにより、ステップの下限が作成されます。ここで、Kはすべてのグラフエッジに対して実行する必要がある作業の最小量です。一部のアプローチでは、K = o (logΩ (K∑ M私)K。これは、せいぜい Ω (∑ M i)であるため、ギャップはほとんどありません。K= o (ログm )Ω (∑ M私)