Algorithme Flashcards

1
Q

Lorsqu’on ne trie pas les données, quel est la relation qu’on peut conclure entre le temps et la taille d’un tableau ?

A

Quand on double la longueur du tableau, on double le temps de recherche. Le temps croît linéairement avec la taille du tableau.

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

Quel est le problème si on ne trie pas les données ?

A

Lorsque les données ne sont pas triées, on doit chercher un élément à la fois et on ne sait même pas si on va trouver ce dont on a de besoin sans lire d’abord chaque élément du jeu de données.

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

Vrai ou faux ? Chercher un élément dans un tableau trié se fait efficacement ?

A

Vrai, cela se fait efficacement avec une recherche binaire/dichotomique.

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

Explique le concept de recherche dichotomique

A

Diviser le tableau en la moitié qui pourrait contenir l’élément , et ce jusqu’à ce que le nombre d’emplacements possibles est réduit à un seul.

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

Lorsqu’on trie les données, quel est la relation qu’on peut conclure entre le temps et la taille d’un tableau ?

A

Quand on quadruple la longueur du tableau, on double (même pas) le temps de recherche. Le temps croît logarithmiquement avec la taille du tableau.

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

Nomme trois méthodes de tri classiques

A

le tri par sélection, le tri par insertion et le tri par bulles

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

Qu’est-ce que le tri par sélection ?

A

On sélectionne le plus petit, on l’insère au début, on rapplique sur la liste moins le premier

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

Qu’est-ce que le tri par insertion ?

A

On prend les éléments un à un et on les insère à la bonne place à partir du début

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

Qu’est-ce que le tri par bulles

A

On regarde les éléments par paires en échangeant leurs positions s’ils ne sont pas dans le bon ordre. Cela fait monter le plus grand élément jusqu’au bout. Une fois le plus grand placé, on répète sur les autres éléments à partir du début.

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

Ça prend combien de temps pour trier ?

A

n comparaison pour n éléments. Donc n carrée comparaisons en tout.
Si on a un ensemble de 128 éléments, en pire cas, on a 128 comparaisons à faire pour chaque éléments. Si on a n = 128 éléments, au pire des cas on pourra trier avec 16384 comparaisons.

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

Quel est le moyen pour rendre plus rapide le tri ?

A

diviser le tri en deux listes, les trier et les fusionner en une seul liste triée.

Donc si on a 128 éléments, au pire des cas on les tries en 16384 comparaisons, ou on trie les 2 moitiés avec 4096 comparaisons chacune + 128 comparaisons pour les fusionner, ce qui donne 8320 comparaisons au total !

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

L’idée de diviser pour régner a donné naissance à quoi ?

A

Cela a donné naissance à plusieurs méthodes de tri dont le nombre de comparaisons suit une progression de nlog2n plutôt que n au carrée, e qui est un gain considérable. Pour 128 éléments on parle de, en pire cas, 128 x 7 = 896 comparaisons, plutôt que 16384.

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

Défini le tri par fusion

A

C’est un algorithme de comparaison qui prend une liste et qui divise la liste jusqu’à temps qu’il y a un élément. Par la suite, cette liste va être comparée à la liste voisine afin de les trier selon leur ordre de croissance et des les fusionner. Au final, tous les éléments seront triés et fusionnées.

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

Défini le tri rapide

A

La méthode consiste à placer un élément du tableau (appelé pivot) à sa place définitive, en permutant tous les éléments de telle sorte que tous ceux qui sont inférieurs au pivot soient à sa gauche et que tous ceux qui sont supérieurs au pivot soient à sa droite.

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

Défini le tri par monceau

A

La méthode consiste a crée un arbre binaire dont le premier élément sera au sommet de l’arbre. Par la suite, après avoir complété l’arbre binaire, on remplace le premier élément au top de l’arbre par l’élément le plus grand et on trie en ordre croissant dans la branche de l’arbre impliqué dans ce remplacement. Par la suite, on remplace l’élément au sommet par le dernier élément et on le supprime de l’arbre binaire. En faisant cela, le numéro le plus grand se retrouvera dans le dernier index, et on continue comme ça jusqu’à temps que le tout soit trié.

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

Comme on l’a vu, les algorithmes ne sont pas tous également efficaces pour résoudre le même problème. Comment les comparer entre eux ?

A

Une solution est le Benchmarking, soit l’analyse empirique.
1.Implémenter l’algorithme en Java ou dans un autre langage.
2.Tester l’algorithme sur des données de tailles différentes
3.Mesurer la différence de temps entre le début et la fin de l’exécution.
4.Comparer graphiquement les résultats.

16
Q

Quels sont les limites de l’approche empirique ?

A

On doit implémenter l’algorithme pour le tester, cependant, on veut connaître la complexité en temps de l’algorithme avant de l’implémenter afin de sauver du temps et de l’argent. De plus, les résultats ne sont pas représentatifs de toutes les entrées possibles et pour comparer 2 algorithmes différents, on doit utiliser exactement le même environnement (Software et Hardware)

17
Q

Quel est une autre option à l’analyse empirique ?

A

L’analyse théorique.
1.Elle se fait à partir du pseudo-code de l’algorithme et non de son implémentation.
2.Caractérise le temps d’exécution comme une fonction de n, la taille de l’entrée
3.Prend en considération toutes les entrées possibles
4.Elle est indépendante de l’environnement utilisé (software, hardware)

18
Q

Pour comparer les algorithmes, on utilise quel notation ?

A

On utilise la notation Big-O O(f(n)), qui décrit une limite asymptotique pour le temps d’exécution d’un algorithme.

19
Q

On peut utiliser la notation Big-O pour indiquer quoi ?

A

L’ordre de grandeur en meilleur, moyen ou pire cas d’un algorithme.

20
Q

Défini le tri par comptage

A

Le tri par comptage est un algorithme pour trier une collection d’objets selon des clés qui sont de petits entiers; il s’agit donc d’un algorithme de tri pour des entiers.

21
Q

Comment fonctionne le tri par comptage ?

A

Il fonctionne en comptant le nombre d’objets qui ont chaque valeur de clé distincte et utilise l’arithmétique sur ces nombres pour déterminer les positions de chaque valeur de clé dans la séquence de sortie.

22
Q

Défini le tri par paquets

A

Le tri par paquets est un algorithme de tri qui fonctionne en distribuant les éléments d’un tableau dans un certain nombre de compartiments (buckets).