Algorithm 一系列算法的时间复杂度

Algorithm 一系列算法的时间复杂度,algorithm,time-complexity,Algorithm,Time Complexity,我对这些算法的时间复杂性有些怀疑: 算法1 int i=0, j=0, sum = 0; while i*i < n { while j*j < n { sum = sum + i * j; j = j+2; } i = i+5; } //我知道这个算法是O(2^n),因为它是斐波那契的拙劣实现 我想我知道答案可能是什么,但我想对它们再发表一个意见。提前谢谢。好的,这就是我的想法,用粗体回答 算法1 我认为这是最有趣的算法

我对这些算法的时间复杂性有些怀疑:

算法1

int i=0, j=0, sum = 0;  
  while i*i < n {
    while j*j < n {
      sum = sum + i * j;
      j = j+2;
    }
   i = i+5;
  }
//我知道这个算法是O(2^n),因为它是斐波那契的拙劣实现


我想我知道答案可能是什么,但我想对它们再发表一个意见。提前谢谢。

好的,这就是我的想法,用粗体回答

算法1 我认为这是最有趣的算法。让我们从一个简单的案例来构建它


让我们暂时假设只有两个嵌套循环刚刚检查了
i,j
being
为什么不发布您认为答案是什么,并解释您为什么这么认为?否则,你会觉得你只是想让别人帮你做作业。对不起,我没有想到。第一个不是永远都会运行吗?谢谢。你的解释真的帮助我把它形象化了。需要注意的是,
j
在第一个算法中没有被重置。我认为遗漏是打字错误。如果不是,那么时间就是*O*(*sqrt*(n)),算法4的最紧界限不是由
2^n
给出的,而是
1.618^n
@meowgoesthedog你能详细说明一下吗:)?我很想知道如何推断,见第二个答案。
sum = 0;
for (i=0; i<=n; i++){  
  j = n;
  while j>i {
    sum = sum + j - i; 
    j = j – 1;
  }
}
for (int i=0; i<=n; i++)
  for (int j=0; j<=n; j++){
    k = 0;
    while k<n {
        c = c+ 1;
        k = K + 100;
    }
}   
Algorithm int f(int n) {
if n==0 or n == 1
return n
else    
    return f(n-2)+f(n-1)