以下嵌套循环的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) 我很好奇使用Big O Notation描述这个的官方方式是什么?
var prices = [100, 180, 260, 590, 40, 310, 535, 10, 5, 3];
var biggest_profit = 0;
for (var i=0; i < prices.length; i++) {
var first_price = prices[i];
for (var j=i+1; j <= prices.length; j++) {
// do something here
}
}
Run Code Online (Sandbox Code Playgroud)
这有点让我失望:
j=i+1
Run Code Online (Sandbox Code Playgroud)
每次我们经历i,j变得越来越短.
Big O Notation中此模式的正确名称是什么?