Merge alternatively Flashcards

(7 cards)

1
Q

Dans quel cas utilise-t-on le pattern “Merge Alterné” ?

A

Quand on veut fusionner deux séquences (listes, chaînes, etc.) en alternant leurs éléments, tout en gérant automatiquement les différences de longueur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelle est l’idée centrale du Merge Alterné sans zip() ?

A

Calculer la longueur maximale des deux séquences (max_len).

Boucler de 0 à max_len-1.

À chaque itération, vérifier si l’index existe dans chaque séquence (avec i < len(seq)) et, si oui, ajouter l’élément correspondant à la liste résultat.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Comment gérer proprement les séquences de tailles différentes ?

A

Plutôt que de padder ou de couper :

On parcourt jusqu’à la taille du plus long.

On fait un simple if i < len(seq) avant chaque accès.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelle est la complexité de ce pattern ?

A

Temps : O(n) avec n = len(seq1) + len(seq2) (une seule boucle linéaire).

Espace : O(n) pour la nouvelle séquence fusionnée.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Pourquoi ce pattern est-il souvent préféré à zip_longest() ou au padding manuel ?

A

Clarté : pas de dépendance à une fonction externe.

Robustesse : pas de valeur de “remplissage” à choisir.

Performance : une seule boucle, aucun traitement superflu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Résumé express du pattern à retenir ?

A

“Parcours jusqu’au plus long, teste l’existence d’une valeur avant de la prendre, et ajoute en alternance.”

Exemples d’applications :

Fusion de deux listes de données (dates vs. valeurs).

Affichage intercalé de messages de deux utilisateurs.

Combinaison de deux flux d’événements en temps réel.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly