class AllSubMatrices {
int a[][] = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 }, { 11, 12, 13, 14, 15 }, { 16, 17, 18, 19, 20 },
{ 21, 22, 23, 24, 25 } };
AllSubMatrices() {
}
int printSum(int r, int c, int len) {
int sum = 0;
for (int i = r; i < (r + len); i++) {
for (int j = c; j < (c + len); j++) {
sum = sum + a[i][j];
}
}
return sum;
}
public void allSubMatrices() {
for (int l = 1; l <= a[0].length; l++) {
for (int i = 0; i <= (a[0].length - l); i++) {
for (int j = 0; j <= (a.length - l); j++) {
System.out.println(printSum(i, j, l));
}
}
}
}
}
Was wäre die zeitliche Komplexität aller SubMatrices? Das Buch, das ich beziehe (Cracking das Coding-Interview) erwähnt o (n^4). Aber das überzeugt mich nicht, da alle Schleifen nicht N-mal laufen, sondern von 1 bis N variabel sind. Ich denke, es sollte o (n^2) sein.Was wäre die zeitliche Komplexität des folgenden Algorithmus?
Wie viele Nummern wird gedruckt? –
Was ist der Wert von n? Breite = Höhe = n? – square1001
@ square1001 ja. –