web-dev-qa-db-fra.com

Différence entre sous-tableau, sous-ensemble et sous-séquence

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.

29
user2821242

À 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.
25
Wilson

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.

7
Roma

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
3
Sandip Pawar

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)

1
user2361174

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)

0
GraceMeng

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

0
rohilla