Final Flashcards

1
Q

Quel est le type d’adressage qui utilise EMPTY, DELETED et ACTIVE?

A

Adressage ouvert

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

Description état EMPTY?

A

Indique que cette entrée est vide et n’a jamais contenu une clé.

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

Description état ACTIVE

A

Indique que cette entrée contient une clé valide.

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

Description état EMPTY

A

Indique que cette entrée est vide et n’a jamais contenu une clé.

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

Pour l’adressage ouvert, les opérations d’insertion, suppression et insertions utilise la fonction TrouverPosition(x) qui effectue une séquence de sondages de la table de dispersion et s’arrête sur la première entrée de cette séquence satisfaisant une propriété. De quelle propriété s’agit-il?

A

TrouverPosition(x) s’arrête sur la première case dans l’état EMPTY ou une case contenant la clé x qui est dans l’état DELETED ou ACTIVE.

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

Comment cette séquence de sondages est-elle effectuée pour le sondage quadratique?

A

La séquence de cases sondées est h0(x), h1(x), h2(x), … avec hi(x) = (h(x) + i2) mod N pour une
fonction de hachage h et une table de dispersion avec N indexes.

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

Lorsque TrouverPosition(x) est arrêté sur une entrée de
la table, quelle est la valeur booléenne retournée par Trouver(x) et comment le champ état est-il modifié en fonction de l’état initial de cette entrée et de la clé x?

A

Soit hi(x), la case où TrouverPosition(x) s’est arrêté.

Pour Trouver(x) : on retourne vrai si hi(x) est ACTIVE et contient x. Si non (dans ce cas hi(x) est dans l’état EMPTY ou DELETED), on retourne faux. Dans tous les cas le champ état n’est pas
modifié. (3 points)

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

Lorsque TrouverPosition(x) est arrêté sur une entrée de
la table, quelle est la valeur booléenne retournée par Supprimer(x) et comment le champ état est-il modifié en fonction de l’état initial de cette entrée et de la clé x?

A

on retourne faux si hi(x) est dans l’état EMPTY ou DELETED et le champ état n’est pas modifié. Si non (dans ce cas hi(x) est dans l’état ACTIVE et contient x), on
retourne vrai et on change l’état à DELETED.

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

En vous servant du fait que dans un tas que tous les niveaux sont pleins, sauf possiblement le dernier, démontrez qu’un tas de n nœuds possède une hauteur h ≤ log2(n).

A

Considérez un tas de n nœuds possédant L nœuds au dernier niveau (le niveau h).
Nous avons alors:
* n = 20 + 21 + … 2h-1 + L avec: 1 ≤ L ≤ 2h
* Alors: n = 2h – 1 + L
Alors:
* L ≥ 1 ⇒ n ≥ 2h ⇒ h ≤ log2(n)

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

En vous servant du fait que dans un tas que tous les niveaux sont pleins, sauf possiblement le dernier, démontrez qu’un tas de n nœuds possède une hauteur h ≥ log2(n+1) - 1.

A

Considérez un tas de n nœuds possédant L nœuds au dernier niveau (le niveau h).
Nous avons alors:
* n = 20 + 21 + … 2h-1 + L avec: 1 ≤ L ≤ 2h
* Alors: n = 2h – 1 + L
Alors:
* L ≤ 2h ⇒ n ≤ 2h+1 – 1 ⇒ h ≥ log2(n+1) – 1.

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

Enlever racine : [8, 8, 7, 6, 6]

A

[8, 6, 7, 6]

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

Enlever racine : [9, 8, 9, 8, 7, 6]

A

[9, 8, 6, 8, 7]

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

Enlever racine : [8, 7, 6, 6, 5, 5, 4]

A

[7, 6, 6, 4, 5, 5]

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

Enlever racine : [8, 7, 6, 5, 4, 3, 2]

A

[7, 5, 6, 2, 4, 3]

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

On ajoute 7 à [8, 7, 6, 5, 4]

A

Réponse : [8, 7, 7, 5, 4, 6]

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

On ajoute 9 à [8, 7, 6, 5, 4]

A

Réponse : [9, 7, 8, 5, 4, 6

17
Q

On ajoute 9 à [9, 8, 7, 7, 6, 5, 6]

A

Réponse : [9, 9, 7, 8, 6, 5, 6, 7]

18
Q

On ajoute 6 à [8, 7, 6, 5, 5, 5, 5]

A

Réponse : [8, 7, 6, 6, 5, 5, 5, 5]

19
Q

V-F : Le tri par insertion est en Q(n2) dans tous les cas.

A

Faux

20
Q

V-F : Le tri par insertion n’est pas stable

A

Faux

21
Q

V-F : Le tri par tas ne trie pas sur place

A

Faux

22
Q

V-F : Le tri fusion est en Q(n log(n)) en meilleur cas

A

Vrai

23
Q

V-F : Le tri fusion est stable.

A

Vrai

24
Q

V-F : Le tri de base est en O(n) dans tous les cas.

A

Vrai

25
Q

V-F : Le tri par tas est en O(n) en meilleur cas.

A

Vrai

26
Q

V-F : Le tri de base ne trie pas sur place.

A

Vrai

27
Q

Si les indexes débutent à 1, à quelle position (ou indexe) doit se trouver le premier nœud du niveau h s’il est présent? Exprimez votre réponse en fonction de h.

A

Le premier nœud du niveau h doit être positionné immédiatement après les nœuds des niveaux précédents. Le nombre total de nœuds compris dans les niveaux de 0 à h-1 est donc donnée par :
=>(3^h-1)/2

selon la série géométrique de l’aide mémoire (avec r = 3 et n = h 1).
Puisque le premier noeud du niveau h doit se trouver immédiatement après tous
ces noeud, sa position (ou indexe) est donnée par :
=> ((3^h-1)/2)-1
=> (3^h+1)/2
=> j

28
Q

Si j dénote la position de ce nœud (le premier nœud au niveau h), à quelle position (ou indexe), en fonction de j, doit alors se trouver chacun des enfants de ce nœud s’ils sont présents?

A

L’enfant le plus a gauche de ce nœud est le premier nœud du niveau h+1. Il doit donc se trouver a la position donnée par le résultat précèdent en remplaçant h par h + 1. Cet enfant le plus à gauche doit donc se trouver en position.

=>3^(h+1)+1/2 = 3j - 1

Les deux autres enfants se trouvent alors en position 3j et 3j + 1.

29
Q

Si i dénote la position du nœud parent (le premier nœud du niveau h) lorsque les indexes débutent à 0, quelles sont alors les positions des nœuds enfants exprimées en fonction de i?

A

Lorsque les indexes débutent en 0, le nœud parent est alors en position i = j1.
L’enfant le plus `a gauche est alors en position

(3j - 1) - 1 = 3j - 2 = 3(i + 1) - 2 = 3i + 1.

Les deux autres enfants sont donc en positions 3i + 2 et 3i + 3.