diff --git a/README.md b/README.md index 8e0ac0241637779827462cab3b869d6123999b0c..3080488905b350581548f26d3d89254dd534da62 100644 --- a/README.md +++ b/README.md @@ -38,23 +38,17 @@ Suite des commandes, ou script, à exécuter pour produire les données. ### Temps d'exécution -| Opération | Tableau | Liste chaînée | | -|----------------------|---------------------------|---------------------------|---------------------------| -| Insertion |  |  |  | -| Accès |  |  |  | -| |  |  |  | + ### Consommation mémoire -| Opération | Tableau | Liste chaînée | | -|----------------------|---------------------------|---------------------------|---------------------------| -| Insertion |  |  |  | -| Accès |  |  |  | -| |  |  |  | + ### Analyse des résultats préalables -Explications précises et succinctes des résultats préalables. +La mémoire se comporte exactement pareil sur les 4 versions. +Les temps d'exécutions dépendent essentiellement de l'affichage des valeurs du tableau. +La version 2 de recherche semble un peu plus rapide. ### Discussion des résultats préalables diff --git a/recherche.c b/recherche.c new file mode 100644 index 0000000000000000000000000000000000000000..1eda5736d2b7dc6391b910eb04d167313fea0bb1 --- /dev/null +++ b/recherche.c @@ -0,0 +1,78 @@ +/** + Recherche d'un entier alétoire dans un tableau de valeurs aléatoires + */ + +#include <stdio.h> +#include <stdlib.h> +#include <time.h> + +#define MAX_VALEUR 15 + +int *generer_tableau(long long unsigned int n) +{ + int *tableau = malloc(n*sizeof(int)); + long long unsigned int i; + + for (i=0; i<n; i++) { + tableau[i] = rand()%MAX_VALEUR; + } + + return tableau; +} + +void afficher_tableau(int *tableau, long long unsigned int n) +{ + long long unsigned int i; + for (i=0; i<n; i++) { + printf("%d ",tableau[i]); + } + printf("\n"); + +} + +long long unsigned int rechercher(int *tableau, long long unsigned int n, int valeur) +{ + long long unsigned int i; + long long unsigned int trouve = -1; + + for (i=0; i<n; i++) { + if (tableau[i] == valeur) { + trouve=i; + } + } + + return trouve; +} + +int main(int argc, char *argv[]) +{ + int *tableau; + int taille, valeur; + char trouve; + + if (argc<2) { + printf("%s: opérande manquant\n",argv[0]); + printf("Recherche une valeur aléatoire dans un tableau d'entier aléatoire de taille n\n"); + printf("Affiche le tableau et renvoie 1 si la valeur est trouvée, 0 sinon\n"); + exit(1); + printf("Usage: %s taille [graine]\n",argv[0]); + } + + unsigned int graine; + if (argc>2) { + graine = atoi(argv[2]); + } else { + graine = time(NULL); + } + + srand(graine); + + taille = strtoull(argv[1], (char **) NULL, 10); + valeur = rand()%MAX_VALEUR; + tableau = generer_tableau(taille); + + afficher_tableau(tableau,taille); + trouve = rechercher(tableau, taille, valeur); + + printf("Valeur %d trouvée: %u\n",valeur, trouve); +}