以下嵌套循环的Big-O时间复杂度是多少:
for(int i = 0; i < N; i++)
{
for(int j = i + 1; j < N; j++)
{
System.out.println("i = " + i + " j = " + j);
}
}
Run Code Online (Sandbox Code Playgroud)
它还是O(N ^ 2)吗?
我需要计算以下代码的时间复杂度:
for (i = 1; i <= n; i++)
{
for(j = 1; j <= i; j++)
{
// Some code
}
}
Run Code Online (Sandbox Code Playgroud)
是O(n ^ 2)?
procedure matrixvector(n:integer);
var i,j:integer;
begin
for i<-1 to n do begin
B[i] = 0;
C[i] = 0;
for j<-1 to i do
B[i]<- B[i]+ A[i,j];
for j<-n down to i+1 do
C[i]<-C[i] + A[i,j]
end
end;
Run Code Online (Sandbox Code Playgroud) 如果以下循环结构处于上限分析中,它是否仍然计算为 O(n^2)?我很困惑,因为内部循环依赖于外部循环,并且每次外部迭代时,内部 for 循环都会少循环一次。除了 O(n) 是什么之外,时间复杂度函数是否会是“n!.n+C”(其中 C 是常数)?我假设n!因为内循环。
for(int i=n;i>0;i--)
{
for(int j=i;j>=1;j--)
{
count++;
}
}
Run Code Online (Sandbox Code Playgroud)