En el de informática, un determinado es una colección (envase ) de ciertos valores, sin ninguna orden particular, y ningunos valores repetidos. Corresponde con un sistema finito en matemáticas. Sin hacer caso de la secuencia, y del hecho de que no haya valores repetidos, es igual que una lista . Un sistema se puede considerar como arsenal asociativo (trazado parcial) en el cual el valor de cada par del llave-valor se no haga caso.
Puestas en práctica
Los sistemas se pueden ejecutar usar vario ideal de las estructuras de datos que las estructuras de datos determinadas hacen
eficiente comprobar si un objeto está en el sistema, así como la permisión de otras operaciones útiles tales como iteración a través de todos los objetos en el sistema, realizando una unión o una intersección de dos sistemas, o tomando el complemento de un sistema en un cierto dominio limitado. Cualquier que la
estructura de datos asociativa del arsenal se pueda utilizar para ejecutar un sistema dejando el sistema de llaves sea los elementos del sistema y de no hacer caso los valores. Debido a la semejanza a los órdenes asociativos, los sistemas se ejecutan comúnmente de las mismas maneras, a saber, un Uno mismo-que balancea el árbol de busqueda binaria para los sistemas clasificados (que tiene O (registro n) para la mayoría de las operaciones), o una
tabla de elección arbitraria para los sistemas sin clasificar (que tiene O (1) medio-caso, pero O (n) a lo peor, para la mayoría de las operaciones). Una tabla de
elección arbitraria linear clasificada se puede utilizar para proporcionar sistemas determinista pedidos.
Otros métodos populares incluyen los órdenes particularmente un subconjunto de los números enteros 1. el n se puede ejecutar eficientemente como n - arsenal de pedacito del pedacito, que también apoyan operaciones muy eficientes de la unión y de la intersección. Un mapa de la floración ejecuta un sistema probabilistically, usar una representación muy compacta pero arriesgar una pequeña ocasión de positivos falsos en preguntas.
Sin embargo, muy pocas de estas estructuras de datos apoyan operaciones determinadas tales como unión o intersección eficientemente. Para estas operaciones, estructuras de datos determinadas especializadas existen.
Ayuda de la lengua
Una de las idiomas más tempranas para apoyar sistemas era Pascal ; muchas idiomas ahora la incluyen, si en la lengua de
la base o en una biblioteca estándar . El
lenguaje de programación de Java ofrece el interfaz a los sistemas de la ayuda (con la clase ejecutándolo usar una tabla de elección arbitraria), y el sub-interface a la ayuda clasificada fija (con la clase ejecutándola usar un árbol de busqueda binaria). En el C++, STL proporciona el "
set" clase de la
plantilla, que ejecuta un sistema clasificado usar un árbol de busqueda binaria; y STL del SGI proporciona el "
hash_set" clasificar, que ejecuta un sistema usar una tabla de elección arbitraria. El pitón tiene un
tipo incorporado del sistema, pero ninguÌn literal del sistema.
Una variación del sistema es el conjunto múltiple del o el bolso, que son iguales que las estructuras de datos del sistema, pero permite valores repetidos. Formalmente, un conjunto múltiple se puede pensar en como arsenal asociativo que los elementos únicos de los mapas a los números enteros positivos que indican el mulplicity del elemento, aunque la puesta en práctica real pueda variar. La
biblioteca estándar de la plantilla de C++ proporciona el "
multiset" clasificar para el conjunto múltiple clasificado, y STL del SGI proporciona el "
hash_multiset" clasificar, que ejecuta un sistema usar una tabla de elección arbitraria. Las colecciones de los campos comunes de Apache proporcionan el interfaz del
bolso y de SortedBag para el Java ; junto con la ejecución de clases tener gusto de HashBag y de TreeBag, análogos a las puestas en práctica determinadas similar-nombradas.
ZenithicCorbul Ucei River