Skip to content
Snippets Groups Projects
Commit cfe614bc authored by HEYD CLOE's avatar HEYD CLOE
Browse files

Update README.md

parent eb8000ad
No related merge requests found
...@@ -10,36 +10,51 @@ Nous avons choisi d'utiliser le langage Java car il est plus adapté à notre or ...@@ -10,36 +10,51 @@ Nous avons choisi d'utiliser le langage Java car il est plus adapté à notre or
**Description du problème** **Description du problème**
Analyse de performance de deux structures, faisant la même chose, mais fonctionnant différemment. Analyse de performance de quatre structures identiques contenant des nombres mais fonctionnant différemment.
Deux paramètres au démarrage : Nous aurons plusieurs paramètres au démarrage :
- Valeur que l'on veut trouver dans chaque tableau - Nombre de valeurs dans chaque tableau : chaque structure a une taille fixe de un million d'éléments générés aléatoirement.
- Nombre de valeurs dans chaque tableau : - Nombre d'opérations : à chaque test, on augmente le nombre d'opérations de 100. Le nombre d'opérations varie de 100 à 5000.
- Chaque tableau génère x nombres aléatoires. De plus, nous indiquons le nombre que l'on veut trouver, qui doit être trouvé dans chaque tableau. Ainsi, le code nous renverra l’indice qui correspond à l’endroit où la valeur voulue se trouve dans le tableau et nous aurons un résultat correspondant à l'indice de la valeur trouvée dans chaque tableau - Type de l'opération : AddTete, AddQueue, RemoveTete, RemoveMiddle ou Get.
- Type de structure : nous utilisons des structures déjà existante (ArrayList, LinkedList, Table) et que nous avons créées nous-même (ChainedList composée de Link et d'un Cursor).
Contrainte : il faut de l’abstraction, et au moins un tableau ET une liste chaînée (Maillons) Contrainte : il faut de l’abstraction, et au moins un tableau ET une liste chaînée (Maillons)
**Description des paramètres exploratoires du problème** **Description des paramètres exploratoires du problème**
- Analyser la différence de performance sur des opérations simples dans chaque structure (Inserer, Supprimer) - Analyser la différence de temps d'éxécution CPU et de consommation de mémoire sur des opérations simples dans chaque structure (insérer, supprimer, sélectionner).
**Organisation du projet** **Organisation du projet**
![](/UML_P4a.png)
## Dispositif expérimental ## Dispositif expérimental
### Organisation objet ### Organisation objet
Description de l'organisation des classes et interfaces, ou diagramme de classes. **Description de l'organisation des classes et interfaces**
Nous avons utilisé trois packages différents :
- Un pour les structures déjà existantes, StandardStructure : ArrayList, LinkedList et Table.
- Un pour celle que nous avons créée, PersonalStructure : ChainedList et ses composants, Link et Cursor.
- Un pour ce qui est commun aux deux packages précédents, defaultpackage : Main et Structure.
Pour les structures déjà existantes, nous avons préféré recréer une classe wrapper pour chacune d'entre elles afin de personnaliser les fonctions que nous voulions tester et adapter leur fonctionnement à chaque structure.
**Diagramme de classes**
![](/UML_P4a.png)
### Application ### Application
[code source de l'application](chemin) [code source de l'application](/Main.jar)
```
Description de l'application et des arguments **Description de l'application et des arguments**
```
Pour utiliser notre application, il faut lui passer plusieurs paramètres dans l'ordre suivant : le type de structure que l'on souhaite évaluer, le nombre de valeurs (un million), la méthode que l'on va évaluer et le nombre d'opérations.
Le Main va ensuite créer une structure en fonction des paramètres qu'on lui a passé et la remplir de nombres aléatoires. Il va ensuite appeler la fonction choisie en utilisant un switch.
### Environnement de test ### Environnement de test
...@@ -85,6 +100,8 @@ Expression précise et succincte d'une hypothèse. ...@@ -85,6 +100,8 @@ Expression précise et succincte d'une hypothèse.
### Protocole expérimental de vérification de l'hypothèse ### Protocole expérimental de vérification de l'hypothèse
Ainsi, le code nous renverra l’indice qui correspond à l’endroit où la valeur voulue se trouve dans le tableau et nous aurons un résultat correspondant à l'indice de la valeur trouvée dans chaque tableau
- Temps d'exécution des deux programmes (et leur différence) - Temps d'exécution des deux programmes (et leur différence)
- Types de recherche de chaque programme (une standard et une recherche dichotomique) - Types de recherche de chaque programme (une standard et une recherche dichotomique)
- Comment le “Random” influe sur la performance des structures - Comment le “Random” influe sur la performance des structures
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment