Je suis un peu confus entre sous-tableau, sous-séquence et sous-ensemble
si j'ai {1,2,3,4}
puis
la sous-séquence peut être {1,2,4}
OR {2,4}
etc. Donc en gros je peux omettre certains éléments mais garder l'ordre.
sous-tableau serait (disons sous-tableau de taille 3)
{1,2,3}
{2,3,4}
Alors quel serait le sous-ensemble?
Je suis un peu confus entre ces 3.
À mon avis, si le modèle donné est un tableau, le soi-disant subarray
signifie contiguous subsequence
.
Par exemple, si donné {1, 2, 3, 4}, subarray
peut être
{1, 2, 3}
{2, 3, 4}
etc.
Alors que le modèle donné est une séquence, subsequence
contient des éléments dont les indices augmentent dans la séquence d'origine.
Par exemple, {1, 2, 3, 4}, subsequence
peuvent également être
{1, 3}
{1,4}
etc.
Alors que le motif donné est un ensemble, subset
contient toutes les combinaisons possibles de l'ensemble d'origine.
Par exemple, {1, 2, 3, 4}, subset
peut être
{1}
{2}
{3}
{4}
{1, 2}
{1, 3}
{1, 4}
{2, 3}
etc.
Dans le contexte d'un tableau, SubSequence - n'a pas besoin d'être contigieux mais doit maintenir l'ordre. Mais SubArray est contigieux et maintient intrinsèquement l'ordre.
si vous avez {1,2,3,4} --- {1,3,4} est une SubSequence valide mais ce n'est pas un sous-tableau.
Et le sous-ensemble n'est pas d'ordre et pas de contigüité. Donc vous {1,3,2} est un sous-ensemble valide mais pas une sous-séquence ou un sous-tableau.
{1,2} est un sous-tableau, un sous-ensemble et une sous-séquence valides.
Tous les sous-réseaux sont des sous-séquences et toutes les sous-séquences sont des sous-ensembles.
Mais parfois, des sous-ensembles, des sous-réseaux et des sous-séquences sont utilisés de manière interchangeable et le mot contigieux est préfixé pour le rendre plus clair.
Considérez un tableau:
{1,2,3,4}
Sous-tableau: séquence contiguë dans un tableau, c'est-à-dire.
{1,2},{1,2,3}
Conséquence: ne doit pas nécessairement être contiguë, mais maintient l'ordre, c'est-à-dire.
{1,2,4}
Sous-ensemble: identique à la sous-séquence, sauf qu'il a un ensemble vide, c'est-à-dire.
{1,3},{}
Étant donné un tableau/une séquence de taille n, possible
Subarray = n*(n+1)/2
Subseqeunce = (2^n) -1 (non-empty subsequences)
Subset = 2^n
Considérez ces deux propriétés dans la collection (tableau, séquence, ensemble, etc.) d'éléments: Ordre et Continuité.
L'ordre est lorsque vous ne pouvez pas changer les indices ou les emplacements de deux ou plusieurs éléments (une collection avec un seul élément a un ordre non pertinent).
La continuité est qu'un élément doit avoir ses voisins rester avec eux ou être nul.
Un sous-tableau a Ordre et Continuité.
Une sous-séquence a un ordre mais pas de continuité.
Un sous-ensemble n'ordonne ni continuité.
Une collection avec Continuité mais pas Ordre n'existe pas (à ma connaissance)
sous-tableau: certains éléments continus du tableau
sous-ensemble: certains éléments de la collection
sous-séquence: dans la plupart des cas, certains éléments du tableau conservent l'ordre relatif (pas nécessaire d'être continu)
D'après ce que je comprends, par exemple, nous avons une liste indiquant [3,5,7,8,9]. ici
le sous-ensemble n'a pas besoin de maintenir l'ordre et a un comportement non contigu. Par exemple, [9,3] est un sous-ensemble
la sous-séquence maintient l'ordre et a un comportement non contigu. Par exemple, [5,8,9] est une sous-séquence
subarray maintient l'ordre et a un comportement contigu. Par exemple, [8,9] est un sous-tableau