N = 頂点の数 M = 有向グラフ G の辺の数とします。辺を隣接リストの形式で保存します。わかりやすくするために、Oi が頂点 i の出次数であり、Ii が頂点 i の入次数であると仮定します。
アルゴリズムは次のとおりです。
for each vertex i
for each vertex j in i's adj.list
//do some work
for each vertex k in j's adj.list
//do some work
「何らかの作業を行う」ことは、基本的に一定時間 (O(1)) で行われます。N、M で実行時間の一般的な表現を導き出すことができませんでした。誰かがこれを行う方法を説明できますか?
余談ですが、「私はあなたの宿題をしません」というコメントを防ぐために、CLRS からテキスト内の質問 (これは 22.1-5) を練習しています。グラフ アルゴリズムの時間の複雑さを見積もる方法を学ぶためにこれを行っています。 .