2017-08-09 9 views
0

私はちょうど数日前にデータ構造とアルゴリズムを勉強し始め、まだその概念を把握しようとしています。私はBig-O表記について学んでいました。私はO(1)-Constant Time Complexityが何であるかを理解しており、質問があります。以下のコードスニペットの大きなO表記

void Method1(int n) { 
    int a = 10; 
    int b = 20;   
    int x = a + n; 
    int y = b * n; 
    Console.Writeline("{0}{1}", x, y); 
} 

上記のコードの複雑さは、nの非常に大きな値ではO(1)です。我々は、Nを処理するのではなく、Nの値を使用している。以下の方法は、nとmが入力として非常に大きな数である場合と同じ複雑さを有するだろうか?

void Method1(int n, int m) { 
     int a = 10; 
     int b = 20;    
     int x = a + n; 
     int y = b * m; 
     Console.Writeline("{0}{1}", x, y); 
    } 
+1

[アルゴリズムの時間複雑さを見つける方法](https://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm) – hatchet

答えて

0

これは、同じ操作を行っているときと同じように、入力に対して同じ複雑さを持ちます。 2つ目のメソッドを同じ値で2回呼び出すだけでは、最初のメソッドと同じになります。

ただし、特定の実装では、ないなりO(1)非常大きな入力に対して。これは、「大整数」は入力の大きさとともに拡大するデータ型であるためです。それらの算術演算はO(log N)です。

関連する問題