In "Big O" haben allgemeine Notationen allgemeine Namen (anstatt "Oh eines konstanten Faktors" zu sagen):
O (1) ist "konstant"
O (log n) ist "logarithmisch"
O (n) ist "linear"
O (n ^ 2) ist "quadratisch"
O (n * log n) ist ???
Ist es nur "n log n" oder hat es einen speziellen Namen wie oben?
terminology
asymptotics
GlenPeterson
quelle
quelle
Antworten:
Es heißt linearithmische Zeit und ist ein Spezialfall einer allgemeineren Klasse, die als quasi linear bekannt ist . Wie der Name vermuten lässt, laufen die Algorithmen, die in diese Klasse fallen, fast in linearer Zeit ab. Tatsächlich haben sie eine geringere Komplexität als Algorithmen, die in mit laufen .O(nk) k>1
quelle
http://catb.org/jargon/html/L/linearithmic.html
quelle
Ich habe immer gehört, dass O (n log n) als "log-linear" beschrieben wurde, was mir ungefähr richtig erscheint.
quelle
Das war zu lang für einen Kommentar, also schrieb ich eine Antwort. Ich habe dies nicht zu meiner ersten Antwort hinzugefügt, da viele Leute bereits meinen ersten Lieferwagen bewertet haben und ich nicht sicher bin, ob sie dieser Antwort auch zustimmen.
und in einem in der Wikipedia zitierten Artikel, der sich mit diesem Schorr-Artikel befasst. Schnorr führt die Komplexitätsklassen Quasilinear (QL) und Nichtdeterministic Quasilinear (NQL) ein.
Quasilinear scheint auch in der Theorie der partiellen Differentialgleichungen verwendet zu werden.
Alles in allem scheint es, dass ein oder mehrere Wikipedianer Namen für diese Funktion angeben wollten, die keinen allgemein akzeptierten Namen haben. Aber selbst jetzt scheint es mir, dass keiner der Namen allgemein akzeptiert wird (abgesehen davon denke ich, dass dies eine Art Manipulation ist, die Wikipedia nicht tun sollte). Ich denke, man muss vorsichtig sein, wenn man Wikipedia für terminologische Fragen verwendet. Und für diese Funktion ist es keine ausreichende Quelle. Ich denke, der einzige weit verbreitete Name für diese Funktion ist n log n .
quelle