Chapitre 2 Flashcards

1
Q

Qu’est-ce qu’un algorithme?

A

Un algorithme est une procédure de calcul permettant de résoudre un problème bien spécifié. L’algorithme explique, de manière non ambigüe et dans un nombre d’opérations fini, comment, à partir d’entrants, obtenir l’ex- trant solution du problème.

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

Un algorithme devrait contenir 5 caractéristiques. Lesquelles?

A

1) Finitude
2) Définition précise
3) Entrées
4) Sorties
5) Efficacité

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

Qu’est-ce que la caractéristique de finitude?

A

Un algorithme doit toujours se terminer après un nombre fini d’étapes. Ce nombre peut toutefois devenir très grand.

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

Qu’est-ce que la caractéristique définition précise?

A

Chaque étape d’un algorithme doit être définie préci- sément; les actions à réaliser doivent être spécifiées rigoureusement et sans ambigüité pour chaque cas.

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

Qu’est-ce que la caractéristique entrées?

A

Un algorithme comporte aucune, une ou plusieurs entrées, des quantités fournies à l’algorithme avant qu’il ne commence ou qui sont allouées dynamiquement durant son exécution. Ces entrées proviennent d’un ensemble d’objets bien spécifié.

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

Qu’est-ce que la caractéristique sorties?

A

Un algorithme comporte une ou plusieurs sorties : des quantités ayant une relation spécifiée avec les entrées

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

Qu’est-ce que la caractéristique efficacité?

A

On s’attend généralement d’un algorithme qu’il soit efficace dans le sens où toutes les opérations qu’il doit accomplir sont suffisam- ment élémentaires pour pouvoir être en principe réalisées dans une durée finie par une personne munie de papier et d’un crayon.

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

À quoi peut on comparer un algorithme?

A

Il est assez utile de le comparer à une recette de cuisine. Dans une recette, les entrées sont les ingrédients, la procédure les diverses étapes et la sortie, le plat pré- paré.

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

Quelles sont les deux façons de présenter un algorithme?

A

1) En language naturel
2) En pseudocode

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

Comment débute un algorithme?

A

L’algorithme débute par la signature de la fonction

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

où est placé le code dans l’algorithme?

A

Le code est indenté (décalé vers la droite) après la signature de la fonction pour montrer qu’il fait partie du corps de la fonction.

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

Qu’en est-il des conditions if/else de l’algorithme en pseudocode?

A

Le bloc délimité par les instructions Tant que (⟨condition⟩) et Fin Tant que forme une boucle dont le contenu — lui aussi indenté — est exécuté tant et aussi longtemps que la ⟨condition⟩ est vraie.

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

Que fait l’instruction retourner?

A

L’instruction Retourner met immédiatement fin à la fonction, ici en retournant la valeur m.

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

Qu’est-ce qu’une instruction conditionnelle?

A

Elles permettent d’effectuer différents calculs selon le résultat d’une condition booléenne (vraie ou fausse).

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

Quels sont les quatre types d’instruction conditionnelle?

A

1) Instruction conditionnelle à un volet
2) Instruction conditionnelle à deux volets
3) Instruction conditionnelle imbriquée
4) La variante de l’instruction conditionnelle imbriquée

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

Quelle est la forme d’une instruction conditionnelle à un volet?

A

Si ⟨condition⟩, alors ⟨conséquence⟩

Donc, la conséquence est effectuée si la condition est vraie. Si la condition est fausse, l’algorithme poursuit normalement

17
Q

Quelle est la forme d’une instruction conditionnelle à deux volets?

A

Si ⟨condition⟩, alors ⟨conséquence⟩,
sinon ⟨alternative⟩

ou bien la ⟨condition⟩ est vraie et la ⟨conséquence⟩ est évaluée, ou bien la ⟨condition⟩ est fausse et c’est alors l’⟨alternative⟩ qui est évaluée.

18
Q

Quelle est la forme d’une instruction conditionnelle imbriquée?

A

Si ⟨condition1⟩, alors ⟨conséquence1⟩, sinon si ⟨condition2⟩, alors ⟨conséquence2⟩, sinon ⟨alternative⟩

la ⟨conséquence1⟩ est évaluée lorsque la ⟨condition1⟩ est vraie; la ⟨conséquence2⟩ est évaluée lorsque la ⟨condition1⟩ est fausse et que la ⟨condition2⟩ est vraie; l’⟨alternative⟩ est évaluée lorsque la ⟨condition1⟩ et la ⟨condition2⟩ sont toutes les deux fausses.

19
Q

Quelle est la forme de la variante de l’instruction précédente qui facilite la lecture lorsqu’il y a un grand nombre d’actions possibles

A

Selon que
⟨condition1⟩, alors ⟨action1⟩;
⟨condition2⟩, alors ⟨action2⟩; ⟨condition3⟩, alors ⟨action3⟩;

autrement, ⟨action par défaut⟩

Seule l’⟨action⟩ correspondant à la ⟨condition⟩ vraie est exécutée. Si au- cune ⟨condition⟩ n’est vraie, c’est l’⟨action par défaut⟩ qui est exécutée.

20
Q

Qu’est-ce qu’un ET?

A

⟨e1⟩ ET ⟨e2⟩ est vraie lorsque les expressions ⟨e1⟩ et ⟨e2⟩ sont toutes deux vraies ; sinon la condition est fausse.

21
Q

Qu’est-ce qu’un OU?

A

⟨e1⟩ OU ⟨e2⟩ est vraie lorsque l’une ou l’autre des expressions ⟨e1⟩ et ⟨e2⟩ est vraie; la condition est fausse uniquement lorsque ⟨e1⟩ et ⟨e2⟩ sont toutes deux fausses.

22
Q

Qu’est-ce qu’un NON?

A

NON ⟨e⟩ est vraie lorsque l’expression ⟨e⟩ est fausse, et fausse autrement.

23
Q

Les ordinateurs sont excellents dans les processus répétitifs. Quels sont les deux types de processus répétitif?

A

1) Itératif
2) Récursif

24
Q

Si quelqu’un veut peinturer une cloture, quelle serait l’approche itérative?

A

nous indiquons à la personne d’appliquer de la peinture sur les planches de la première à la dernière. En supposant que les planches sont numérotées de 1 à 𝑛, cela revient à indiquer d’appliquer de la peinture sur la planche 𝑖, pour 𝑖 allant de 1 à 𝑛.

25
Q

Si quelqu’un veut peinturer une cloture, quelle serait l’approche récursive?

A

Le processus est divisé en deux étapes:
1) appliquer de la peinture sur une planche
2) peinturer une clôture de 𝑛 − 1 planches tant qu’il y a des planches à peinturer.

La personne qui suit les instructions récursives ne peut commencer à appliquer de la peinture tant qu’elle n’a pas rencontré la condition d’arrêt (l’extrémité de la clôture) puisque la description du travail à effectuer dé- pend d’elle-même.

26
Q

Si la personne du processus itératif devait arrêter son travail en plein milieu, est-ce qu’une personne pourrait reprendre le travail à la même place?

A

Oui, il pourrait simplement lui dire à quelle planche il s’est arrêter.

27
Q

Si la personne du processus récursif devait arrêter son travail en plein milieu, est-ce qu’une personne pourrait reprendre le travail à la même place?

A

la personne ne pourrait uniquement dire qu’elle en était à peinturer une clôture de 𝑚 planches, car elle aurait aussi bien pu se trouver dans la phase d’expansion que dans celle de contraction. Elle devrait donc aussi fournir des informations — qu’elle a mémorisées — sur l’« état » dans lequel elle se trouvait au moment d’interrompre son travail.

28
Q

La factorielle est une récession ou une itération?

A

Une récursion

29
Q

Que peut-on dire de la croissance de l’algorithme 𝑂(1)

A

Un algorithme d’ordre 𝑂(1) prend toujours le même temps pour effectuer ses calculs, peu importe la taille du problème. Il va sans dire que de tels algorithmes sont excessivement rares. Ils effectuent en général des tâches très simples.

30
Q

Que peut-on dire de la croissance de l’algorithme 𝑂(log 𝑛)

A

l’ordre de grandeur 𝑂(log 𝑛) survient dès lors que la taille du problème est divisée par deux à chaque étape.

31
Q

Que peut-on dire de la croissance de l’algorithme 𝑂(√𝑛)

A

Les algorithmes d’ordre 𝑂(√𝑛) sont rares. La fonction racine car- rée croit lentement, mais néanmoins plus rapidement que la fonction lo- garithme.

32
Q

Que peut-on dire de la croissance de l’algorithme 𝑂(𝑛)

A

Les algorithmes avec cette performance demeurent acceptables étant donné le rythme de croissance somme toute raisonnable de la fonction identité.

33
Q

Que peut-on dire de la croissance de l’algorithme 𝑂(𝑛 log 𝑛)

A

Les algorithmes qui répètent 𝑛 fois un calcul d’ordre 𝑂(log 𝑛) ont une performance d’ordre 𝑂(𝑛log𝑛). C’est le cas de plusieurs algo- rithmes de tri.

34
Q

Que peut-on dire de la croissance de l’algorithme 𝑂(𝑛2)

A

Les algorithmes qui effectuent un calcul pour toutes les paires d’entrées ont une performance 𝑂(𝑛2). Ici, ça commence à devenir lent.

35
Q

Que peut-on dire de la croissance de l’algorithme 𝑂(𝑛!)

A

Attention, danger. La fonction factorielle croit si rapidement qu’un algorithme ayant ce type de performance ne peut résoudre que de petits problèmes.