Skip to content
Snippets Groups Projects
Commit 6194d4af authored by paul.albuquer's avatar paul.albuquer
Browse files

updated lesson 4 to version 2020-21

parent 2a134136
No related branches found
No related tags found
No related merge requests found
# Algorithmes et structures de données 2019-20
# Algorithmes et structures de données 2020-21
Contenu du cours 4 du 9.10.2019
Contenu du cours 4 du 7.10.2020
*****
## Crible d’Eratosthène
- Retour sur les tableaux à 1 dimension
## Type article (enregistrement, record) : `struct`
- Un article permet de regrouper des types de nature différente (appelés champs) comme composant d'un type composé.
- Exemples de `struct`:
```C
struct fraction {
int num;
int den;
};
enum mois {
jan=1,feb,mar,apr,mai,jun,jul,aug,sep,oct,nov,dec
};
struct date {
int day;
mois month;
int year;
}
enum sexe {FEM, MASC, AUTRE};
struct employe {
char nom[80];
sexe genre;
int age;
float salaire;
}
```
## Fonction cube d'un nombre
```C
......@@ -91,52 +124,3 @@ Contenu du cours 4 du 9.10.2019
end for
end tri_selection
```
## Le tri par insertion
- Algorithme appliqué au tableau: **4 7 6 1 2**
- 1ère étape : 4 **7** 6 1 2
- trouver la position `pos` de 7 dans le sous-tableau trié à 1 élément : **4**
- décaler de 1 les éléments de la position `pos=1` à la fin du sous-tableau
- insérer l'élément 7 en position `pos=1`
- 2ème étape : 4 7 **6** 1 2
- trouver la position `pos` de 6 dans le sous-tableau trié à 2 éléments : **4 7**
- décaler de 1 les éléments de la position `pos=1` à la fin du sous-tableau
- insérer l'élément 6 en position `pos=1`
- 3ème étape : 4 6 7 **1** 2
- trouver la position `pos` de 1 dans le sous-tableau trié à 3 éléments : **4 6 7**
- décaler de 1 les éléments de la position `pos=0` à la fin du sous-tableau
- insérer l'élément 1 en position `pos=0`
- 4ème étape : 1 4 6 7 **2**
- trouver la position `pos` de 2 dans le sous-tableau trié à 4 éléments : **1 4 6 7**
- décaler de 1 les éléments de la position `pos=1` à la fin du sous-tableau
- insérer l'élément 2 en position `pos=1`
- On obtient le tableau trié: **1 2 4 6 7**
## Tri à bulles
- Algorithme appliqué au tableau **4 7 6 2 1**
- Principe : on parcours le tableau depuis et on permute les éléments successifs s'ils sont dans le désordre
**4 7** 6 2 1
4 **7 6** 2 1
4 6 **7 2** 1
4 6 2 **7 1**
4 6 2 1 7
A la fin de cette traversée, le plus grand élément se trouve en dernière position.
- On applique à nouveau ce principe, mais sur le tableau allant de la 1ère à l'avant-dernière case du tableau
**4 6** 2 1 7
4 **6 2** 1 7
4 2 **6 1** 7
4 2 1 6 7
- Et ainsi de suite ...
- En 4 étapes nécessitant 4, puis 3, puis 2, et finalement 1, opérations de comparaison-échange, on obtient un tableau trié.
Donc en 4+3+2+1 = 5**·**4/2 = 10 opérations, on a un tableau trié.
- Plus généralement, un tableau à N éléments se trie en N(N-1)/2 opérations avec le tri à bulles.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment