2016-09-05 3 views
5
While(n>=1) 
{ 
    n=n/20; 
    n=n/6; 
    n=10×n; 
    n=n-10000; 
} 

ich versucht, ähnliche =>Was ist die zeitliche Komplexität des gegebenen Codes?

In dieser Schleife wird N durch N reduziert/12 - 10000. so, Zeitkomplexität O (log N) ist.

+1

Wenn Sie eine Idee über die Komplexität haben, können Sie konkrete Werte für einige n berechnen und den resultierenden Graphen mit der angenommenen Komplexität vergleichen. Wenn beide Diagramme ähnlich sind, können Sie einen Beweis dafür finden, warum Ihre Annahme richtig ist. – MrSmith42

+0

danke! Ich werde das im Hinterkopf behalten – Garrick

+1

Bitte posten Sie nicht, was im Grunde die gleiche Frage alle paar Stunden ist (http://stackoverflow.com/questions/39324836/what-is-the-time-complexity-of-given-code) . Vielleicht möchten Sie zuerst eine allgemeinere Q & A lesen, wie: http://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm – m69

Antwort

6

Das scheint richtig zu sein. Wenn dies eine Übung ist, sollten Sie bereit sein zu argumentieren, warum O(log_12(N))O(log(N)) ist.

+1

Basen von Logarithmen sind in der Reihenfolge des Wachstums immateriell : Logarithmen zu verschiedenen Basen unterscheiden sich durch konstante Faktoren – Garrick

+1

Ja, aber können Sie das mathematisch beweisen? – mort

+0

Ich weiß nicht, wo ich falsch liege, aber warum ist es nicht 'O (log (N + konstant)) '? – YiFei

Verwandte Themen