partiellement fini

This commit is contained in:
vaisse
2025-10-15 17:57:48 +02:00
parent ceffc9f2bf
commit bf9233b55e
6 changed files with 1038 additions and 0 deletions

11
exo3/REPONSES.md Normal file
View File

@@ -0,0 +1,11 @@
### REPONSES
#### Complexité algorithmique.
pour la fonction triSpecial(): Soit n qui désigne la taille du tableau.
Dans le cas où le nombre de racines carrées est pair, triSpecial() fait appel à une fonction somme qui est d'une complexité linéaire O(n), car le seul argument est le tableau. Une boucle est ensuite réalisée sur un 1 élément sur deux, soit O(n/2), pour faire des affectations.
En supposant que la boucle qui permet de vérifier le nombre de racines carrées se trouve dans la fonction (ce n'est pas le cas ici mais c'est ce qui est demandé dans l'énoncé), on a en plus une complexité O(n/2) sur le tableau.
On a donc l'expression : n/2 + n + n/2.
La complexité est de O(2n).
Dans le cas où le nombre de racines carrées est impair, on a: n * n/2 + n/2 * n/2.
La complexité est de O(3n²/4).

Binary file not shown.

BIN
exo3/gmon.out Normal file

Binary file not shown.

999
exo3/nombres.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -95,6 +95,7 @@ int main(int argc, char**argv){
triSpecial(tableau, nb_racine_carre, count);
Affichage(tableau, nb_racine_carre, count);
free(tableau);
free(buffer);

27
exo3/writefile.c Normal file
View File

@@ -0,0 +1,27 @@
#include <stdlib.h>
#include <stdio.h>
#define LIMIT 999
#define BUF_LIM 512
int main(void){
FILE* f = fopen("nombres.txt", "w");
int r;
char* buffer = (char*) malloc(BUF_LIM*sizeof(char));
if(f!=NULL){
for(int i=0; i<LIMIT; i++){
r = rand()%10000;
if(r<0){
printf("%d\n", r);
}
sprintf(buffer,"%d\n",r);
fputs(buffer, f);
}
}
fclose(f);
free(buffer);
return EXIT_SUCCESS;
}