以下代码段的大O表示法

时间:2017-08-09 23:51:52

标签: algorithm data-structures time-complexity big-o

我几天前就开始研究数据结构和算法,并且仍然试图掌握这些概念。我正在学习Big-O符号。我理解O(1) - 恒定时间复杂性是什么并且有问题。

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 个答案:

答案 0 :(得分:0)

对于输入,这将具有相同的复杂性,因为您正在执行相同的操作。如果您只是使用相同的值两次调用第二个方法,则它与第一个方法相同。

但请注意,对于非常大输入,某些实现 <1> 那是因为“大整数”是一种随输入幅度扩展的数据类型;那些算术运算是 O (log N)。