partiellement fini
This commit is contained in:
11
exo3/REPONSES.md
Normal file
11
exo3/REPONSES.md
Normal 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).
|
||||||
|
|
BIN
exo3/a.out
BIN
exo3/a.out
Binary file not shown.
BIN
exo3/gmon.out
Normal file
BIN
exo3/gmon.out
Normal file
Binary file not shown.
999
exo3/nombres.txt
Normal file
999
exo3/nombres.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -95,6 +95,7 @@ int main(int argc, char**argv){
|
|||||||
|
|
||||||
|
|
||||||
triSpecial(tableau, nb_racine_carre, count);
|
triSpecial(tableau, nb_racine_carre, count);
|
||||||
|
Affichage(tableau, nb_racine_carre, count);
|
||||||
|
|
||||||
free(tableau);
|
free(tableau);
|
||||||
free(buffer);
|
free(buffer);
|
||||||
|
27
exo3/writefile.c
Normal file
27
exo3/writefile.c
Normal 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;
|
||||||
|
}
|
Reference in New Issue
Block a user