我对以下代码片段中的操作总数的看法是否有效? (Big-O表示法)

时间:2016-09-05 14:53:27

标签: java numbers big-o operations

public class foo{   
    public static void main(String[] args){
         int a = 1;
         int b = 1;
         int n = 4;

         //Focus is on the below for-loop
         for(int x=1;x<=n;x++){           
             c=a+b;
         }
    }
}
  • x = 1 - &gt; O(1)//一个任务陈述
  • x&lt; = n - &gt; O(n + 1)//检查n次,然后检查以下时间
  • x ++ - &gt; O(n)//增加n次
  • c = a + b - &gt; O(4n)//增加n次,但语句本身有四个操作,LOAD A + LOAD B + ADD + STORE C

现在我将如何结合这些?即,我是否添加或增加,为什么?提前谢谢。

2 个答案:

答案 0 :(得分:0)

你的想法是有效的,但那不是O(n) 要计算$ grep -oP 'user-id-\K[^"]*' file 1234567890 0123456789 9873456789 ,您需要Asymptotic analysis

大学教授here有一个很棒的答案,你应该看看他答案的最后部分。

代码的时间复杂度为grep -oP 'user-id-\K\d*' file

答案 1 :(得分:0)

  

我对以下代码段中的操作总数的看法是否有效? (Big-O表示法)

不,因为Big-O不是关于你计算它们的级别的代码操作。引用此descent page about Big-O

  

Big O符号在计算机科学中用于描述算法的性能或复杂性。 Big O专门描述了最坏情况,可用于描述算法所需的执行时间或使用的空间(例如在内存或磁盘上)。

在你的情况下,你有:

  

O(N)描述了一种算法,其性能将线性增长,并与输入数据集的大小成正比。

N增加时,你的for循环会线性增加,所以你的代码是O(N)。