Compare commits

2 Commits
main ... main

Author SHA1 Message Date
vaisse
fab8c93448 je ne sais pas 2025-10-15 12:25:45 +02:00
vaisse
f855c61999 exo2 fini 2025-10-15 10:00:40 +02:00
3 changed files with 84 additions and 0 deletions

12
README.md Normal file
View File

@@ -0,0 +1,12 @@
## exercice 2
Pour function_1:
Les deux paramètres d'entrées sont des tableaux. On pose n et m les tailles respectives des tableaux tableau1 et tableau2. On a une boucle imbriqué dans une autre en fonction de la longueur des tableaux. La condition d'arrêt de la boucle sur tableau2 est vérifiée si un élément de tableau 2 est le même que l'élément ciblé dans tableau1. Ici, on calcule la complexité dans le pire des cas, c'est à dire qu'il n'y aucune intersection entre tableau1 et tableau2.
On a une affection au début de la fonction, ce qui compte pour 1, et un test dans une boucle imbriquée. En considérant que la comparaison compte pour 1, on a la complexité suivante :
n*m+1
Ce qui revient à dire une complexité O(n*m).
Pour function_2:
on a un while en fonction du paramètre d'entrée (n). La condition qu'il vérifie est qu'il doit être strictement supérieur à 0, et il est décrémenté de 1 à chaque tour de boucle. On a donc une complexité linéaire: O(n).
Pour function_3:
Aucune boucle dans cette fonction. Le nombre d'expressions exécutées ne dépend pas du paramètre. La complexité est donc de O(1).

BIN
exo3/a.out Executable file

Binary file not shown.

72
exo3/algo.c Normal file
View File

@@ -0,0 +1,72 @@
#include <stdlib.h>
#include <stdio.h>
int * tri(int n, int m, int * LETABLEAU){
/*JE EN SAIS PAS */
int offset=0;
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
}
}
}
int main(int argc, char** argv){
/*variables*/
int n=0;
int m=0;
int format_count=0;
int element_count=0;
int element_count_test=0;
int count=0;
unsigned short int done=0;
/*tests*/
if(argc < 2){
printf("USAGE: ./a.out <tableau>\n");
return EXIT_FAILURE;
}
while(argv[1][n]=='['){
n++;
}
if(n==0){
printf("FORMATERROR: Tableau de la forme:[m*[n*element]], où n est la dimension et m le nombre de valeurs\n");
return EXIT_FAILURE;
}
while(argv[1][count]!='\0'){
if(argv[1][count]=='['){
format_count++;
} else if(argv[1][count]==']'){
format_count--;
if(element_count==0){
printf("FORMATERROR: tableau ou sous tableau ne contient aucuns éléments\n");
return EXIT_FAILURE;
}
if((element_count_test!=element_count)&&(done==1)&&(format_count==n-1)){
printf("FORMATERROR: nombre incohérents d'éléments dans le tableau\n");
printf("%d %d\n", element_count, element_count_test);
return EXIT_FAILURE;
}
element_count_test=0;
done=1;
} else {
if(argv[1][count]!=','){
if(done==0){
element_count++;
} else {
element_count_test++;
}
*(tableau+count) = argv[1][count] - '0';
}
}
count++;
}
if(format_count!=0){
printf("FORMATERROR: dimensions incohérentes dans le tableau\n");
return EXIT_FAILURE;
}
m = element_count;
}