Was ist die zeitliche Komplexität für die folgende Funktion?Wie berechnet man die Zeitkomplexität für die untere Funktion?
void function(int n){
for(int i=0; i<n; i++){. //n times
for(int j=i ; j< i*i; j++){ // n*n times
if(j%i == 0){
for(int k=0; k<j; k++){ // j times = n * n times.
++counter;
}
}
}
}
}
Buch sagt O(n^5)
. Aber ich konnte nicht verstehen, warum Buch j%i
nicht berücksichtigt hat. Die k
Schleife bestimmt auf dieser Grundlage. Könntest Du das erläutern?
Vielen Dank. Schlagen Sie vor, dass alle 3 Schleifen O (n^4) benötigen. Ich bin ein bisschen verwirrt. Kannst du das oben mit der äußeren Schleife erklären? – Manoj
@Manoj Ich schreibe eine andere Antwort, um die Dinge klarzustellen. Dauert ein paar Minuten –
@Manoj: Yeah für eine bestimmte ich, innere Schleifen (der Teil des Codes, den ich erwähnt habe) Komplexität ist O (i^3), und da ich von 0-n variieren, ist die Komplexität gleich O (n^4). Zumindest bekomme ich das. Kannst du das Buch erwähnen? –