Collections de clés dans Javascript ES6 : complexité informatique/temporelle
La spécification ES6 fournit des collections de clés (Set, Map, WeakSet et WeakMap) avec des garanties spécifiques de complexité de calcul/temps. Ces collections implémentent une sémantique observable qui impose des temps d'accès sublinéaires en moyenne, proportionnels au nombre d'éléments de la collection.
Bien que la spécification n'impose pas d'algorithmes spécifiques, elle suggère que les implémentations utilisent des algorithmes performants. Néanmoins, la spécification ne nécessite pas explicitement un accès en temps constant (O(1)) pour des opérations telles que Set.prototype.has, add et delete.
Une clarification importante vient de la spécification elle-même, indiquant que les structures de données utilisées dans la spécification Keyed Collections sont uniquement destinées à décrire la sémantique observable requise, et non un modèle de mise en œuvre spécifique. Cela laisse ouverte la possibilité aux implémentations d'utiliser des tables de hachage ou des structures similaires pour obtenir un accès constant.
En résumé, bien que la spécification ES6 n'impose pas strictement la complexité temporelle O(1) pour les collections à clés, elle encourage fortement les implémentations. d'utiliser des algorithmes performants. Par conséquent, la plupart des implémentations sont conçues pour fournir en moyenne un temps d'accès constant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!