Salut,
j ai ecris ce programme qu on donne une liste de N nombres entiers et un entier K. Le programme trouve la somme la plus grande d une suite K élements consécutifs.
exemple:
en entrée ...
6
3
12
42
33
8
22
54
en sortie ...
87
car on obtient 87 en additionnant 12, 42 et 33.
Pouvez vous m aider a calculer la complexitée de mon algo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <stdio.h> int main() { int nombreElements; int valeurSuiteElements; scanf("%d%d", &nombreElements, &valeurSuiteElements); int valeurEntree; int max = 0; int TabValeursEntree[10000]; int tabSomme[10000]; int i; for (i = 0; i < nombreElements; i++) { scanf("%d", &valeurEntree); TabValeursEntree[i] = valeurEntree; } int j, k; for (j = 0; j < nombreElements-valeurSuiteElements+1; j++) { for (k = j; k < j+valeurSuiteElements; k++) { tabSomme[j] += TabValeursEntree[k]; } if (tabSomme[j] > max) max = tabSomme[j]; } printf("%d", max); return 0; }
Ce que sais qu une affection simple coute un temps constant c.
mais j arrives pas a calculer la complexitée de mes boucles surtout les 2 boucles imbriquées.
Et donner moi votre avis sur mon algo svp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for (j = 0; j < nombreElements-valeurSuiteElements+1; j++) { for (k = j; k < j+valeurSuiteElements; k++) { tabSomme[j] += TabValeursEntree[k]; } if (tabSomme[j] > max) max = tabSomme[j]; }
Merci!
Partager