Ensemble (informatique)
En informatique, un ensemble ou set est un type abstrait qui peut stocker certaines valeurs, sans ordre particulier, et sans rĂ©pĂ©tition. Il s'agit d'une mise en Ćuvre informatique de la notion mathĂ©matique d'ensemble fini.
Description
Un ensemble stocke des valeurs, sans ordre défini, et ne contient pas de données en double (la tentative d'insertion d'une donnée déjà présente est sans effet)[1]. Contrairement à la plupart des autres types de collections[2] les ensembles sont plus utilisés pour tester l'appartenance d'une valeur à cet ensemble que pour en extraire des données.
Structure de données
Certaines structures de donnĂ©es de type ensemble sont conçues pour ĂȘtre statiques (ou « gelĂ©es ») : elles ne peuvent pas ĂȘtre modifiĂ©es aprĂšs leur conception. Ces ensembles statiques ne permettent que des opĂ©rations de requĂȘte sur leurs Ă©lĂ©ments â telles que vĂ©rifier si une valeur donnĂ©e est prĂ©sente dans l'ensemble, ou Ă©numĂ©rer les valeurs dans un ordre arbitraire. Il existe gĂ©nĂ©ralement sur les serveurs les supportant des opĂ©rateurs tels qu'union, intersection et diffĂ©rence permettant des opĂ©rations de requĂȘte rapides[1]. D'autres variantes, appelĂ©es ensembles dynamiques ou modifiables, permettent Ă©galement l'insertion et la suppression d'Ă©lĂ©ments de l'ensemble.
Une structure de donnĂ©es de type abstrait est une collection, ou agrĂ©gat, de donnĂ©es. Les donnĂ©es peuvent ĂȘtre des opĂ©rateurs boolĂ©ens, des nombres, des caractĂšres ou autres structures de donnĂ©es. Si l'on prend en compte les fonctionnalitĂ©s d'empaquetage[3] ou d'indexation[4], il existe quatre grandes structures de donnĂ©es :
- non empaquetée, non indexée: collection d'objets (bunch)
- empaquetée, non indexée : ensemble
- non empaquetée, indexée : chaßne (séquence)
- empaquetée, indexée : liste (array).
Dans cette structuration, les ensembles contiennent des éléments, alors que la collection d'objets consiste en ces éléments[5].
Une structure de données probabiliste implémentant ce type est le filtre de Bloom.
Notes et références
- Rudi Bruchez, Les bases de donnĂ©es NoSQL : Comprendre et mettre en Ćuvre, Paris, Ăditions Eyrolles, , 279 p. (ISBN 978-2-212-13560-2, lire en ligne), p. 172
- Constituent d'autres types de collections (de type conteners) les listes, les multiensembles, les arborescences et les graphes
- "Empaqueter", faire des paquets, consiste Ă fournir un conteneur pour une agrĂ©gation d'objets afin de les transformer en un objet unique. Dans le cas d'un appel de fonction: sans paquet, une fonction ne peut ĂȘtre appelĂ©e Ă agir sur une chaĂźne qu'en passant en revue chaque Ă©lĂ©ment du groupe comme argument sĂ©parĂ©, ce qui complique considĂ©rablement l'exĂ©cution de la fonction (et est tout simplement pas possible dans certains langages de programmation). En regroupant les Ă©lĂ©ments en un ensemble, la fonction peut maintenant ĂȘtre appelĂ©e sur un argument unique, Ă©lĂ©mentaire : l'ensemble d'objets (bunch's package en anglais).
- L'indexation est possible lorsque les Ă©lĂ©ments envisagĂ©s sont totalement ordonnĂ©s. En l'absence d'ordre, les Ă©lĂ©ments d'un multi-ensemble (par exemple) ne prĂ©sentent pas de relations telles qu'infĂ©rieures/supĂ©rieures, ou prĂ©cĂ©dents/ suivants un autre Ă©lĂ©ment : ils ne peuvent ĂȘtre comparĂ©s qu'en termes absolus (identiques/diffĂ©rents)
- Eric C.R. Hehner [a Practical Theory of Programming http://www.cs.utoronto.ca/~hehner/aPToP/aPToP.pdf] p. 14
- (en) Cet article est partiellement ou en totalitĂ© issu de lâarticle de WikipĂ©dia en anglais intitulĂ© « Set (abstract data type) » (voir la liste des auteurs).