Notion de base en algo (Complexité spatiale) Flashcards

(22 cards)

1
Q

Qu’est-ce que la complexité spatiale d’un algorithme ?

A

La quantité de mémoire supplémentaire utilisée par l’algorithme en fonction de la taille de l’entrée (n), exprimée en notation O.

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

Quelle est la différence entre la pile (stack) et le tas (heap) en mémoire ?

A

Pile : Gérée automatiquement (LIFO), pour les variables locales et appels de fonctions. Taille fixe.

Tas : Gérée manuellement/dynamiquement, pour les données de taille variable. Taille flexible.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Pourquoi swap(a, b) a une complexité spatiale O(1) ?

A

Elle utilise 1 seule variable temporaire, quel que soit le type ou la taille de a et b.

L’espace mémoire est constant (ne dépend pas de n).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Pourquoi copier_tableau(arr) a une complexité spatiale O(n) ?

A

Parce qu’elle crée une copie du tableau (taille n).

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

Pourquoi une récursion profonde (ex: fibonacci(n)) a une complexité spatiale O(n) ?

A

Parce que chaque appel récursif empile un nouveau cadre de pile (jusqu’à n appels).

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

Pourquoi s += “a” dans une boucle n fois a une complexité spatiale **O(n²)` ?

A

Les strings étant immuables, chaque concaténation crée une nouvelle copie (coût cumulé quadratique).

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

Comment concaténer n strings en O(n) en espace ?

A

Utiliser ““.join(liste) pour éviter les copies intermédiaires.

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

Pourquoi une matrice n x n a une complexité spatiale O(n²) ?

A

Parce qu’elle stocke n² éléments.

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

Quel est le rôle du garbage collector dans la complexité spatiale ?

A

Il libère automatiquement la mémoire du tas quand les objets ne sont plus utilisés (évite les fuites).

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

Qu’est-ce qu’un stack overflow ?

A

Un crash causé par le dépassement de la taille maximale de la pile (ex: récursion infinie).

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

Pourquoi tri_fusion(arr) a une complexité spatiale O(n)?

A

Il alloue un tableau temporaire de taille n pour fusionner les sous-tableaux.

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

Quelle est la complexité spatiale d’un algorithme générant toutes les sous-parties d’un ensemble de taille n ?

A

O(2ⁿ) car il y a 2ⁿ sous-parties à stocker.

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

Comment analyser la complexité spatiale d’un algorithme ?

A

Compter les allocations mémoires explicites (tableaux, objets).

Évaluer la profondeur de la pile d'appels (récursions).

Ignorer l'espace des entrées/sorties (sauf si modifié).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qu’est-ce que la complexité spatiale en cas moyen ?

A

L’espace mémoire moyen utilisé pour des entrées aléatoires (ex: pile d’appels + tas).

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

Quelle est la complexité spatiale du tri par insertion dans le meilleur cas ?

A

O(1) (tri en place, aucune allocation supplémentaire).

17
Q

Pourquoi la complexité spatiale de QuickSort est O(log n) en cas moyen ?

A

La profondeur de récursion moyenne est log n (pile d’appels).

18
Q

Pourquoi s += “a” a une complexité spatiale O(n²) en cas moyen ?

A

Les copies temporaires de strings s’accumulent avant le garbage collection.

19
Q

Quelle est la complexité spatiale d’un algorithme générant toutes les permutations d’un ensemble de taille n ?

A

O(n × n!) (stockage de n! permutations, chacune de taille n).

20
Q

Comment réduire la complexité spatiale d’une récursion ?

A

Remplacer par une boucle itérative (ex: Fibonacci itératif → O(1)).

21
Q

Donnez un exemple d’algo avec complexité spatiale O(n) dans le pire cas.

A

Tri Fusion → stocke des sous-tableaux temporaires.

22
Q

Pourquoi une HashMap a une complexité spatiale moyenne O(n) ?

A

Stocke n éléments, mais avec des collisions gérées par des buckets (mémoire linéaire en moyenne).