Estructuras de datos y algoritmos (Capítulo 3): Conjuntos

El conjunto es la estructura básica de la estructura de datos, es completamente consistente con el conjunto en matemáticas, entonces veamos qué es el conjunto en matemáticas.

1. ¿Qué es una colección?

Una colección se refiere a un colectivo de objetos concretos o abstractos con una determinada naturaleza. Entre ellos, estos objetos que constituyen el conjunto se denominan elementos del conjunto.

Para citar algunos ejemplos, si se toma a los humanos como un conjunto, los chinos son un elemento en el conjunto. Si el 0-100número de la naturaleza como colección, 0es un elemento en el conjunto, denotado 0∈100, 101no los elementos de la colección, se denota por 0∉100. Para obtener más detalles, abra el primer capítulo de Gaoshu (1) y eche un vistazo más de cerca.

En segundo lugar, las características de la colección.

La colección tiene las siguientes tres características:

  • Certeza: Dado un conjunto, se da cualquier elemento, el elemento pertenece o no al conjunto, los dos deben ser uno de los dos, y no se permite la ambigüedad.

  • Mutualidad: en un conjunto, dos elementos cualesquiera se consideran diferentes, es decir, cada elemento solo puede aparecer una vez. A veces es necesario caracterizar la situación en la que el mismo elemento aparece varias veces y se pueden utilizar varios conjuntos, en los que los elementos pueden aparecer varias veces.

  • Desorden: en un conjunto, el estado de cada elemento es el mismo y los elementos están desordenados. La relación de orden se puede definir en el conjunto. Una vez definida la relación de orden, los elementos se pueden clasificar de acuerdo con la relación de orden. Pero en lo que respecta a las características del propio conjunto, no existe un orden inevitable entre los elementos.

Tres, el tipo de colección

1. juego vacío

Si un conjunto no contiene ningún elemento, se denomina conjunto vacío y se registra como .

Inserte la descripción de la imagen aquí

El código se puede representar como una matriz vacía (para facilitar la comprensión, debe demostrar todo el siguiente Pythonejemplo para explicarlo).

In [1]: data = set()                                                                                               

In [2]: data                                                                                                       
Out[2]: set()

2. Subconjunto

Si el conjunto de Atodos los elementos que pertenecen al conjunto B, entonces el Aconjunto es un Bsubconjunto del conjunto.

Inserte la descripción de la imagen aquí

In [3]: data = set({1, 2, 3, 4, 5})                                                                                

In [4]: data                                                                                                       
Out[4]: {1, 2, 3, 4, 5}

In [5]: 1 in data                                                                                                  
Out[5]: True

In [6]: 0 in data                                                                                                  
Out[6]: False

3. Intersección

Todos pertenecen al conjunto Ay al conjunto perteneciente a Buna colección de elementos denominada composición de la intersección, denotada por A∩B.

Inserte la descripción de la imagen aquí

In [7]: data = set({1, 2, 3, 4, 5})                                                                                

In [8]: s = set({2, 4, 6})                                                                                         

In [9]: data & s                                                                                                   
Out[9]: {2, 4}

4. Unión

Perteneciente al conjunto de todo Ao parte del Bconjunto de elementos formado por llamado y conjunto, denotado por A∪B.

Inserte la descripción de la imagen aquí

In [10]: data | s                                                                                                   
Out[10]: {1, 2, 3, 4, 5, 6}

5. Resta

Todos pertenecen al conjunto que Ano pertenece al conjunto Bconjunto de elementos que consta de un conjunto de conjuntos conocidos Acon respecto al conjunto de conjuntos de Bdiferencias, denotado A-B.

Inserte la descripción de la imagen aquí

In [11]: data - s                                                                                                   
Out[11]: {1, 3, 5}

In [12]: s - data                                                                                                   
Out[12]: {6}

6. Complemento

Generalmente se refiere a complementar complemento absoluta, si Aes Bun subconjunto (subconjunto del concepto de mirando hacia arriba ), Btodo no pertenecen a Alos elementos que consisten en una colección llamada Ael Bcomplemento de. Se puede decir que el conjunto de complementos es un caso especial del conjunto de diferencias.

Inserte la descripción de la imagen aquí

AEs Bun subconjunto de Bun Asuperconjunto.

In [13]: s1 = set({2, 4})                                                                                           

In [14]: data - s1                                                                                                  
Out[14]: {1, 3, 5}

7. Diferencia simétrica

Conjunto de Ala serie Bno son todos los A∩Belementos de la colección se llama diferencia simétrica, que se denota A△B, a saber: A△B=(A∪B)-(A∩B).

Inserte la descripción de la imagen aquí

In [13]: data ^ s                                                                                                   
Out[13]: {1, 3, 5, 6}

Cuarto, la implementación del algoritmo de la colección.

El código anterior que se utiliza Pythonen la recopilación de datos se ha logrado una buena estructura, entonces usted está familiarizado con nuestro lenguaje, este conjunto de estructuras de datos implementa el algoritmo.

Esto es realmente simple, no lo escribiré aquí (tal vez lo escriba cuando no esté ocupado en el futuro). Hay algunos puntos a los que prestar atención. Utilice únicamente matrices como estructura básica de datos. Las características y los tipos de la colección deben satisfacerse. El rendimiento y la eficiencia no se tienen en cuenta por el momento. Después de aprender el algoritmo de coincidencia de cadenas y la clasificación algoritmo, etc., vuelva y optimice.

Supongo que te gusta

Origin blog.csdn.net/yilovexing/article/details/107335751
Recomendado
Clasificación