Ich habe eine Nummer N. Halten Sie die Summierung der Ziffern bis eine einzelne Ziffer ergeben. zB 35252 ==> 17 ==> 8 I den folgenden Code geschrieben haben:Zeit Komplexität: Kontinuierliche Summierung der Ziffern einer Zahl, bis eine einzelne Ziffer Ergebnis
int digitSum(int n)
{
int sum = 0;
int digit;
while(n)
{
digit = n%10;
n = n/10;
sum += digit;
}
if(sum > 9)
return digitSum(sum);
else
return sum;
}
kommend auf die Zeitkomplexität: I den Bereich für die N gegeben werde als 0 < = N < = 10^9 .
Im schlimmsten Fall mit allen 9s, wird die Rekursion geht max zweimal und ich werde O (loglogn)
Im besten Fall mit einstelliger N bekommen, wird die Komplexität seines O (1)
Was wird die durchschnittliche Komplexität sein? Ich meine, was wird die Komplexität sein, wenn N irgendeine Zahl ohne definierten Bereich sein kann.
Es scheint mir, dass die While-Schleife O (log (N)) Komplexität hat. Es wird der führende Bestellbegriff sein. – Gribouillis