Quel terme puis-je utiliser pour décrire quelque chose avec une complexité O (N log N)?
Par exemple:
O (1): Constante
O (log N): Logarithmique
O (N): linéaire
O (N log N): ??????
O (N 2 ): Quadratique
O (N 3 ): Cubique
Quel terme puis-je utiliser pour décrire quelque chose avec une complexité O (N log N)?
Par exemple:
O (1): Constante
O (log N): Logarithmique
O (N): linéaire
O (N log N): ??????
O (N 2 ): Quadratique
O (N 3 ): Cubique
Réponses:
"N log N" est aussi bon que vous allez en avoir, et devrait être bien compris par les programmeurs professionnels. Vous ne pouvez pas vous attendre à ce qu'il y ait un seul mot pour décrire chaque classe de complexité qui existe.
Il existe un terme de jargon linéarithmique qui signifie exactement cela.
Je ne pense pas que ce soit universellement compris par tous les programmeurs, donc si vous ne faites pas attention, cela obscurcira plus qu'il n'informe. Personnellement, je ne l'utilise pas normalement, et si je le faisais, je le définirais probablement lors de la première utilisation, par exemple "cet article considère les O(N log N)
algorithmes linearithmic ( )".
Il est parfois appelé "loglinear", bien que ce mot signifie en réalité quelque chose de différent. Cependant, je me contenterais de "N log N", comme le suggère la réponse de @ Philip .
O(n · f(n))
oùf(n) << n
. Mais cela correspond aussi à des choses commeO(n · log log n)
etO(n α(n))
oùα(n)
est l'inverse de la fonction Ackermann.