[計算量をざっくり理解] ループを使う場合の計算量

参考 3 クラス P,N P, N P 完全,N P 困難 複雑性クラス 複雑性クラス(ふくざつせいクラス、英:Complexity class)は、計算複雑性理論において関連する複雑性の問題の集合を指す。典型的な複雑性クラスは以下のよ...

for ループを使う場合の計算量について考えます。

\( O(n) \)  

for ループの中に\( O(1) \)の処理がある場合は、\( O(n) \) になります。

for i=0 to N:
    # O(1) の処理

\( O(n^2) \)  

for ループの中に for ループがネストされ、その中に\( O(1) \)の処理がある場合は、\( O(n^2) \) になります。

for i=0 to N:
    for j=0 to N:
        # O(1) の処理

漸近的挙動を考えるので、例えば以下のように処理を減らしたとしても、計算量は \( O(n^2) \) のままです。

for i=0 to N:
    for j=0 to i:
        # O(1) の処理

\( O(n^k) \)  

一般的に、for ループの中に for ループが\(k-1\)個ネストされていて、その中に\( O(1) \)の処理がある場合は、\( O(n^k) \) になります。

線形探索とは 線形探索(せんけいたんさく、英:linear search, sequential search)は、検索のアルゴリズムの一つ。リストや配列に入ったデータに対する検索を行うにあたって、 先頭から順に比較を行い、それが見つかれば終了する。 ...