Algorithm 一系列算法的时间复杂度
我对这些算法的时间复杂性有些怀疑: 算法1Algorithm 一系列算法的时间复杂度,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 我认为这是最有趣的算法
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)