Skip to content
Snippets Groups Projects
Verified Commit 2f28ecbc authored by orestis.malaspin's avatar orestis.malaspin
Browse files

ajout exercices tri à bulles et complexité quicksort

parent f1e4277f
No related branches found
No related tags found
No related merge requests found
Pipeline #14842 passed
......@@ -118,7 +118,7 @@ Compris?
Non c'est normal, faisons un exemple.
# Tri rapide ou quicksort (4/8)
# Tri rapide ou quicksort (3/8)
Deux variables sont primordiales:
......@@ -128,7 +128,7 @@ int low, high; // les indices min/max des tableaux à trier
![Un exemple de quicksort.](figs/quicksort.svg)
# Tri rapide ou quicksort (5/8)
# Tri rapide ou quicksort (4/8)
Deux variables sont primordiales:
......@@ -150,7 +150,7 @@ void quicksort(array, low, high) {
}
```
# Tri rapide ou quicksort (6/8)
# Tri rapide ou quicksort (5/8)
## Pseudocode: partition
......@@ -172,7 +172,7 @@ int partition(array, low, high) {
}
```
# Tri rapide ou quicksort (7/8)
# Tri rapide ou quicksort (6/8)
## Exercice: implémenter les fonctions `quicksort` et `partition`
......@@ -193,7 +193,7 @@ void quicksort(int size, int array[size], int first,
```
# Tri rapide ou quicksort (8/8)
# Tri rapide ou quicksort (7/8)
\footnotesize
......@@ -219,6 +219,46 @@ int partition(int size, int array[size], int first, int last) {
}
```
# Tri rapide ou quicksort (8/8)
## Quelle est la complexité du tri rapide?
. . .
* Pire des cas plus: $\mathcal{O}(N^2)$
* Quand le pivot sépare toujours le tableau de façon déséquilibrée ($N-1$
éléments d'un côté $1$ de l'autre).
* $N$ boucles et $N$ comparaisons $\Rightarrow N^2$.
* Meilleur des cas (toujours le meilleur pivot): $\mathcal{O}(N\cdot \log_2(N))$.
* Chaque fois le tableau est séparé en $2$ parties égales.
* On a $\log_2(N)$ partitions, et $N$ boucles $\Rightarrow N\cdot
\log_2(N)$.
* En moyenne: $\mathcal{O}(N\cdot \log_2(N))$.
# L'algorithme à la main
## Exercice *sur papier*
* Trier par tri rapide le tableau `[5, -2, 1, 3, 10]`
```C
```
# Tri à bulle (1/4)
## Algorithme
......@@ -266,7 +306,7 @@ void bubble_sort(int size, int array[]) {
}
```
# Tri à bulle (3/4)
# Tri à bulle (4/4)
## Quelle est la complexité du tri à bulles?
......@@ -281,6 +321,28 @@ $$
$$
* En moyenne, $\mathcal{O}(N^2)$ ($N^2/2$ comparaisons).
# L'algorithme à la main
## Exercice *sur papier*
* Trier par tri à bulles le tableau `[5, -2, 1, 3, 10]`
```C
```
# L'algorithme du PPCM *récursif* (1/3)
## Exemple d'algorithme pour le calcul
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment