Mit welchem Begriff kann ich etwas mit O (N log N) -Komplexität beschreiben?
Beispielsweise:
O (1): Konstante
O (log N): Logarithmisch
O (N): linear
O (N log N): ??????
O (N 2 ): Quadratisch
O (N 3 ): kubisch
algorithms
algorithm-analysis
big-o
matiascelasco
quelle
quelle
O(n · f(n))
wof(n) << n
. Dies passt aber auch zu Dingen wieO(n · log log n)
undO(n α(n))
woα(n)
ist die Umkehrung der Ackermann-Funktion.Antworten:
"N log N" ist so gut wie nie zuvor und sollte von professionellen Programmierern verstanden werden. Sie können nicht erwarten, dass es ein einziges Wort gibt, das jede existierende Komplexitätsklasse beschreibt.
quelle
Es gibt einen Jargonbegriff linearithmisch , der genau dies bedeutet.
Ich glaube nicht, dass es von allen Programmierern allgemein verstanden wird. Wenn Sie also nicht aufpassen, wird es mehr verdecken, als es aussagt. Persönlich verwende ich es normalerweise nicht, und wenn ja, würde ich es wahrscheinlich bei der ersten Verwendung definieren, zum Beispiel "dieser Artikel berücksichtigt linearithmische (
O(N log N)
) Algorithmen".quelle
Es wird manchmal als "loglinear" bezeichnet, obwohl dieses Wort tatsächlich etwas anderes bedeutet. Ich würde mich aber einfach an "N log N" halten, wie die Antwort von @ Philip nahelegt.
quelle
Da der Faktor
log n
langsam wächst, wäre eine qualitative Beschreibung fürO(n log n)
"fast linear". Abhängig von Ihrer Zielgruppe ist die Klasse derO(n log n)
Algorithmen möglicherweise gut bekannt, wie dies beispielsweise bei der schnellen Sortierung vonn
Elementen durch Vergleiche der Fall ist .quelle