Quelques réponses sont fondamentalement correcte, même si elles ne ressemblent pas à ça. La table de hachage approche (pour un exemple) a une limite supérieure en fonction de la plage de la type plutôt que le nombre d'éléments dans les tableaux. Au moins par la plupart des définitions, qui fait de l' (limite supérieure) à l'espace une constante, même si la constante peut être assez important.
En théorie, vous pouvez changer qu'à partir d'une limite supérieure à un véritable quantité constante de l'espace. Juste pour exemple, si vous travaillez en C ou C++, et c'était un tableau d' char
, vous pouvez utiliser quelque chose comme:
size_t counts[UCHAR_MAX];
Depuis UCHAR_MAX est une constante, la quantité d'espace utilisé par le tableau est également une constante.
Edit: j'avais remarque pour que l'enregistrement d'un bond sur les plages/tailles des éléments impliqués est implicite dans presque toutes les descriptions de la complexité algorithmique. Juste pour exemple, nous tous savons que Quicksort est un O(N log N) de l'algorithme. C'est seulement vrai, cependant, si nous supposons que comparer et d'échanger sur les éléments en cours de tri prend à temps constant, qui ne peut être vrai que si nous avons lié la gamme. Si la gamme de produits en cause est suffisamment importante pour que l'on ne peut plus traiter une comparaison ou d'un swap que la prise constante de temps, puis sa complexité allait devenir quelque chose comme O(N log N log R), ont été R est la plage, de sorte log R
se rapproche le nombre de bits nécessaire pour représenter un élément.