Time complexity 确定算术级数的时间复杂度

Time complexity 确定算术级数的时间复杂度,time-complexity,big-o,complexity-theory,Time Complexity,Big O,Complexity Theory,我是分析时间复杂度的新手。有人可以帮助我了解以下算法的时间复杂度吗 public void test(int n) { for(int i=1;i<=n;i=i+2) { for(int j=1;j<=i;j++) {} } } 公共无效测试(int n) { 对于(inti=1;i假设n是奇数,那么对于某些k,n=2k+1 1 + 3 + … + n = 1 + 3 + … + 2k+1 = (1 + 3 + … + 2k + 1) +

我是分析时间复杂度的新手。有人可以帮助我了解以下算法的时间复杂度吗

public void test(int n)
{
  for(int i=1;i<=n;i=i+2)
    {
     for(int j=1;j<=i;j++)
     {}
    }
}
公共无效测试(int n)
{

对于(inti=1;i假设n是奇数,那么对于某些k,n=2k+1

  1 + 3 + … + n
= 1 + 3 + … + 2k+1
= (1 + 3 + … + 2k + 1) + (1 + 1 + … + 1) - (1 + 1 + … + 1)
= (1 + 1) + (3 + 1) + … + (2k + 1 + 1) - (1 + 1 + … + 1)
= 2 + 4 + … + 2k+2 - (1 + 1 + … + 1)
= 2(1 + 2 + … + k+1) - (1 + 1 + … + 1)
= 2(k+1)(k+2)/2 - (k+1)
= k^2 + 3k + 2 - k - 1
= k^2 + 2k + 1
= (k+1)^2
= (n+1)^2/4
我们可以测试一些术语

n    f(n)    Series Sum
1    1       1 = 1
3    4       1 + 3 = 4
5    9       1 + 3 + 5 = 9
7    16      1 + 4 + 5 + 7 = 16

看起来它是正确的。

假设n是奇数。然后n=2k+1表示一些k。现在

  1 + 3 + … + n
= 1 + 3 + … + 2k+1
= (1 + 3 + … + 2k + 1) + (1 + 1 + … + 1) - (1 + 1 + … + 1)
= (1 + 1) + (3 + 1) + … + (2k + 1 + 1) - (1 + 1 + … + 1)
= 2 + 4 + … + 2k+2 - (1 + 1 + … + 1)
= 2(1 + 2 + … + k+1) - (1 + 1 + … + 1)
= 2(k+1)(k+2)/2 - (k+1)
= k^2 + 3k + 2 - k - 1
= k^2 + 2k + 1
= (k+1)^2
= (n+1)^2/4
我们可以测试一些术语

n    f(n)    Series Sum
1    1       1 = 1
3    4       1 + 3 = 4
5    9       1 + 3 + 5 = 9
7    16      1 + 4 + 5 + 7 = 16

看起来它是正确的。

U写了n=2k+1。在这种情况下,k是什么?如果序列是1+5+9+13..n.我们有什么共同的公式来计算它们的总和以确定其时间复杂度吗?@nayak0765 k是n/2舍入,假设n是奇数,我从问题中推断出来。对于第二个问题,让n=4k+1,加上,减去3+3+…+3=3k,从4+8+…+4k+4中算出4,继续进行代数简化。你写了n=2k+1。在这种情况下,k是什么?如果序列是1+5+9+13..n.我们有什么共同的公式来计算它们的和来确定它的时间复杂度吗?@nayak0765 k是n/2舍入假设n是奇数,我从对于第二个问题,让n=4k+1,加减3+3+…+3=3k,从4+8+…+4k+4中算出4,继续进行代数简化。