Beaucoup de solutions sont excellentes, mais Aucune d'entre elles n'a mentionné la dernière innovation.
Elle a une complexité de temps pire de O(1) pour les opérations remplir(v), lire(i), écrire(i, v)
(appeler remplir(v) met toutes les valeurs du tableau à v, et lire/écrire sont explicites),
tout en prenant seulement 1 bit d'espace supplémentaire en plus du tableau. Oui.
Donc un tableau int32_t de taille 1 000 000 prendra O(1) de temps au pire pour être initialisé (et rempli),
et ne prendra que 32 000 001 bits de mémoire.
Elle est mentionnée dans l'article Des tableaux initialisables sur place,
et expliquée dans un Article que j'ai écrit sur le sujet.
J'ai écrit une bibliothèque en C++ en-tête seulement appelée Farray qui propose le Farray Remplissable,
qui est une implémentation modélisée sur le papier mentionné ci-dessus.
0 votes
Est-il possible de mettre en œuvre par une table de hachage?