Je pense que c'est une approche pragmatique ; O(logN) ne sera jamais supérieur à 64. En pratique, lorsque les termes deviennent aussi "petits" que O(logN), il faut mesurer pour voir si les facteurs constants l'emportent. Voir aussi
http://stackoverflow.com/questions/1424303/uses-of-ackermann-function/1424397#1424397
Pour me citer dans les commentaires d'une autre réponse :
[L'"analyse" n'est importante que pour les facteurs qui sont au moins O(N). Pour tout facteur facteur plus petit, l'analyse big-oh est inutile et vous devez mesurer.
et
"Avec O(logN) votre taille d'entrée n'est pas importe." C'est tout le sens de la la question. Bien sûr que ça compte... en théorie . La question que pose le PO est de savoir si cela importe en pratique ? I prétends que la réponse est non, il n'y a pas il n'y a pas, et il n'y aura jamais, un ensemble de données pour lequel le logN croîtra si vite qu'il pourra toujours être battu par un algorithme en temps constant. Même pour le plus grand ensemble de données pratiques imaginables à l'époque vie de nos petits-enfants, un algorithme logN a une bonne chance de battre un algorithme en temps constant - vous devez toujours mesurer.
EDIT
Une bonne discussion :
http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey
À peu près à mi-chemin, Rich discute des essais de hachage de Clojure, qui sont clairement O(logN), mais la base du logarithme est grande et donc la profondeur du trie est au plus 6 même s'il contient 4 milliards de valeurs. Ici, "6" est toujours une valeur O(logN), mais c'est une valeur incroyablement petite, et donc choisir de rejeter cette structure de données impressionnante parce que "j'ai vraiment besoin de O(1)" est une chose stupide à faire. Cela souligne combien la plupart des autres réponses à cette question sont simplement mauvais du point de vue du pragmatique qui veut que son algorithme "fonctionne rapidement" et "s'adapte bien", indépendamment de ce que dit la "théorie".
EDIT
Voir aussi
http://queue.acm.org/detail.cfm?id=1814327
qui dit
A quoi sert un algorithme O(log2(n)) si ces opérations provoquent des défauts de page et ralentissent les opérations sur le disque ? Pour la plupart des ensembles de données pertinents, un algorithme O(n) ou même un algorithme O(n^2), qui évite les défauts de page, le surpasse. page, le surpasse.
(mais allez lire l'article pour le contexte).