GitLab now enforces expiry dates on tokens that originally had no set expiration date. Those tokens were given an expiration date of one year later. Please review your personal access tokens, project access tokens, and group access tokens to ensure you are aware of upcoming expirations. Administrators of GitLab can find more information on how to identify and mitigate interruption in our documentation.
Notre problème ? Comment trier efficacement des tableaux !
Et par efficacement trier des tableaux, nous entendons les trier le plus rapidement
possible, en consommant le moins de mémoire possible. Pour ceci nous allons partir
de 4 algorithmes de tri différents et étudier leur temps d'exécution et leur consommation
de mémoire en fonction du tableau à trier (tableau généré aléatoirement, déjà trié,
trié dans le sens inverse).
Et par efficacement trier des tableaux, nous entendons les trier le plus rapidement possible, en consommant le moins de mémoire possible. Pour ceci nous allons partir de 4 algorithmes de tri différents et étudier leur temps d'exécution et leur consommation de mémoire en fonction du tableau à trier (tableau généré aléatoirement, déjà trié, trié dans le sens inverse, trié à moitié).
## Dispositif expérimental
...
...
@@ -27,6 +23,7 @@ Le binaire demande une option et un fichier, le fichier est du type de ceux déf
-`-f` ou `--fusion` pour le tri à fusion
-`-r` ou `--rapide` pour le tri rapide
-`-b` ou `--bulle` pour le tri à bulle
-`-ri` ou `--rapideInsertion` pour le tri rapide mélangé avec le tri insertion (développé dans l'hypothèse)
-`-a` ou `--all` pour tout les tris disponibles
-`-iv` ou `--insertion-verbose` pour le tri à insertion avec les affichages avancés
-`-fv` ou `--fusion-verbose` pour le tri à fusion avec les affichages avancés
...
...
@@ -34,6 +31,7 @@ Le binaire demande une option et un fichier, le fichier est du type de ceux déf
-`-g` qui génére un nouveau tableau sur stdout avec une taille du tableau et un nombre max
-`-gt` qui génére un nouveau tableau trié sur stdout avec une taille du tableau et un nombre max
-`-gti` qui génére un nouveau tableau trié dans le sens inverse sur stdout avec une taille du tableau et un nombre max
-`-gtp` qui génére un nouveau tableau trié à moitié sur stdout avec une taille du tableau et un nombre max
### Environnement de test
...
...
@@ -59,20 +57,17 @@ cache size : 12288 KB
### Description de la démarche systématique
On va tester le tri à bulle, le tri par insertion, le tri fusion et le tri rapide avec des tableaux générés aléatoirement de taille entre 0 et 100 000 et ayant des valeurs entre 0 et 100 000 pour observer leurs temps d'exécution et leur consommation mémoire.
Pour obtenir perf.dat contenant toutes les données (à exécuter dans [src/Scripts/](src/Scripts/)):
```
./perf.sh > perf.dat
sh perf.sh > perf.dat
```
Ensuite, il faut lancer R et exécuter les commandes du fichier[src/R/perf.R](src/R/perf.R) :
Ensuite, il faut lancer R et exécuter le script[src/R/perf.R](src/R/perf.R) :
```
R
library(ggplot2)
perf <- read.table("perf.dat", header = TRUE)
ggplot(perf, aes(x=taille, y=temps, group=tri, colour=tri)) + geom_point() + geom_smooth() + facet_grid(tri~sort) + ggtitle("Graphe des temps d'exécution")