伪代码的大o表示法

时间:2019-01-23 02:55:39

标签: data-structures big-o pseudocode

我相信它是O(n),因为没有嵌套循环或除法/乘法运算。我说的对吗?

i <-  0
count <-  0
while(i<n)
 x  <- random()
 y <-  random()
 if (x^2 + y^2 <= 1)
   count   count+1
 i <-  i + 1

完成 pi <-4 * count / n

2 个答案:

答案 0 :(得分:0)

它是O(n),因为while循环运行了n次。

答案 1 :(得分:0)

让我们看一下所有语句,这次在方括号中添加一些标签

[1] i <- 0
[2] count <- 0
[3] while(i < n)
  [3.1] x <- random()
  [3.2] y <- random()
  [3.3] if (x^2 + y^2 <= 1)
     [3.3.1] count <- count + 1
  [3.4] i <-  i + 1

现在让我们计算每个语句的复杂度:

[1] O(1)
[2] O(1)
[3] n times
  [3.1] O(1)
  [3.2] O(1)
  [3.3] O(1)
     [3.3.1] O(1)
  [3.4] O(1)

所以,总的复杂度是

O(1) + O(1) + n * 4 * O(1) = O(n)