三重嵌套循环的时间复杂度


Answers:


14

您可以通过计算最里面的for循环执行的三元组的数目来计算(i,j,k)执行次数。

1ijkn

  • n+2
  • n+2
  • (i,j,k)
    • i
    • j
    • k

n+2(n+23)


2
好答案!i,j,k的确切值并不重要。我们只需要知道任何蓝色框都可以放置在n个可能的位置中,并且它们的位置是有界的:第二个始终位于第一个之后和第三个之后。
大卫Natingga

@rizwanhudda清除,但的部分除外。你能解释一下吗?看起来像正确的数字。n + 2 n + 3+2n+2n+3
saadtaame 2012年

1
@saadtaame是的。您可以想象有红色框,但是可以自由地从“红色框”中选择3个红色框来绘制蓝色,因为您不能将第一个框上色为蓝色(因为)Ñ + 2 1n+3n+2i1
rizwanhudda

3

对我来说,它更容易内循环执行的通知倍和处决的总数中内环为ni

(ni)+(ni1)+(ni2)++1

可以将其重写为并执行次,因此执行的总数为nj=0ninijn

i=0nj=0ninij=n(n+1)(n+2)6

对您的挑战:假设您有一个x嵌套循环。根据先前的答案,它将执行(n + x-1)次选择x次。您将如何计算公式?
大卫Natingga

幸运的是,OP并没有要求进行X嵌套!给定的其他答案如何扩展为x嵌套循环?我的答案应该只是获得更多的和,从0到n,从0到n-i_1,从0到n-i_2,...,从0到n-i_x。但是我不知道该怎么计算。
2012年

1
对于一般的x,答案并没有明确扩展,但是提供的推理过程很容易遵循x嵌套循环。您只需添加更多蓝色框。我也不知道如何计算更多的和。
大卫Natingga
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.