Warum ist die durchschnittliche Komplexität der Fallzeit von tree sortO(n log n)
?Baumsortierung: Zeitkomplexität
Aus Wikipedia:
ein Element in eine binäre Suchbaum hinzuzufügen ist im Durchschnitt ein O (log n) Prozess (in O-Notation), n Elemente ein O so Zugabe (n log n) Prozess
Aber wir fügen nicht jedes Mal einen Gegenstand zu einem Baum von n Einzelteilen hinzu. Wir beginnen mit einem leeren Baum und erhöhen allmählich die Größe des Baumes.
So sieht es eher wie
log1 + log2 + ... + logn = log (1*2*...*n) = log n!
ich etwas fehlt?
Warum ist die zweite Ungleichung für die O-Definition erforderlich? Außerdem glaube ich, dass die Erklärung in Wikipedia irreführend ist: In der Praxis ist die Komplexität log (n!). Die Tatsache, dass es nicht schlechter als log (n^n) werden kann, ist cool, aber wir können auch sagen, dass es nicht schlimmer als log (n^n^n) werden kann. – rapt
@rapt, weil nach der großen O-Notation die untere Grenze 'n/2 * log (n/2)' die gleiche wie 'nlog (n)' ist, dann hast du die Ungleichung 'O (nlog (n)) < = O (log (n!) <= O (nlog (n)) ' –
Das ist richtig, aber wenn ich mir die formale Definition der großen O-Notation anschaue, sieht es so aus, als ob die erste Ungleichung alles zeigt 'log (n!) = O (n log (n))' Jedenfalls ist es eine gute einfache Erklärung, die mich an einige Details erinnert und bestätigt hat, dass der aktuelle Wikipedia-Eintrag "Baumsortierung" nicht so genau ist. – rapt