Citat:
Ursprungligen postat av agneos
Kod:
a2)
for( int i=1;i<n*n; i++)
x=x+1;
for(int j=1;j<n; j++)
x=x+3;
O(N^2)
Det är lite oklart hur du menar att looparna nästlar sig (är det ren Java så är de förstås ej nästlade, men det känns som att det likaväl kan vara pseudokod du talar om).
Kod:
for (int i=1;i<n*n; i++) {
x=x+1;
}
for (int j=1;j<n; j++) {
x=x+3;
}
I detta fall är komplexiteten O(n^2+n)=O(n^2)
Om du däremot menar att j-loopen ligger inuti i-loopen på följande sätt:
Kod:
for (int i=1;i<n*n; i++) {
x=x+1;
for (int j=1;j<n; j++) {
x=x+3;
}
}
gäller komplexiteten O(n^2*n)=O(n^3)
Två andra exempel som ger O(n^2) är:
Kod:
for (int i=1;i<n; i++) {
x=x+1;
for (int j=1;j<n; j++) {
x=x+3;
}
}
och
Kod:
for (int i=1;i<n*n; i++) {
x=x+1;
}
För övrigt råder jag dig starkt att hålla dig till nollindexering i dina loopvariabler, även om detta är en smaksak