forked from menault/2026_TD3_DEV51_Qualite_Algo
fonction 2 : O(n + C)
This commit is contained in:
+8
-2
@@ -6,7 +6,9 @@
|
|||||||
|
|
||||||
# 1.Mesurer
|
# 1.Mesurer
|
||||||
|
|
||||||
```gcc -O2 banque.c -o banque && time ./banque```
|
```
|
||||||
|
gcc -O2 banque.c -o banque && time ./banque
|
||||||
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
Empreinte : ff68d260a7a58441
|
Empreinte : ff68d260a7a58441
|
||||||
@@ -16,7 +18,7 @@ user 0m4,772s
|
|||||||
sys 0m0,005s
|
sys 0m0,005s
|
||||||
```
|
```
|
||||||
|
|
||||||
Le temps d'éxecution du programme est de 4.793 seconde et l'emprunte est <ff68d260a7a58441>
|
Le temps d'éxecution du programme est de 4.793 seconde et l'emprunte est : [ff68d260a7a58441]
|
||||||
|
|
||||||
|
|
||||||
# 2.Profiler
|
# 2.Profiler
|
||||||
@@ -80,6 +82,10 @@ La complexité de la fonction est de <span style="color:blue">[O(n)]</span> pour
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 4. Optimisation
|
||||||
|
|
||||||
|
|
||||||
|
Optimisation de la fonction 2 nom du commit : "fonction 2 : O(n + C)"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -88,18 +88,17 @@ void trier_par_montant(Transaction *t, int n)
|
|||||||
/* F2 : nombre de clients ayant au moins une transaction */
|
/* F2 : nombre de clients ayant au moins une transaction */
|
||||||
int nb_clients_distincts(const Transaction *t, int n)
|
int nb_clients_distincts(const Transaction *t, int n)
|
||||||
{
|
{
|
||||||
|
int clients_vus[NB_CLIENTS] = {0};
|
||||||
int nb = 0;
|
int nb = 0;
|
||||||
|
|
||||||
for (int i = 0; i < n; i++) {
|
for (int i = 0; i < n; i++) {
|
||||||
int deja_vu = 0;
|
int client = t[i].client;
|
||||||
for (int j = 0; j < i; j++) {
|
if (!clients_vus[client]) {
|
||||||
if (t[j].client == t[i].client) {
|
clients_vus[client] = 1;
|
||||||
deja_vu = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!deja_vu)
|
|
||||||
nb++;
|
nb++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nb;
|
return nb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user