From df4e8876fb43d26a6e24caae73f1dbf8bf52cf26 Mon Sep 17 00:00:00 2001 From: abraham Date: Wed, 21 Oct 2026 11:10:03 +0200 Subject: [PATCH] fonction 2 : O(n + C) --- COMPTE_RENDU.md | 10 ++++++++-- banque | Bin 21160 -> 21208 bytes banque.c | 15 +++++++-------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/COMPTE_RENDU.md b/COMPTE_RENDU.md index 8a04d39..4b09cd0 100644 --- a/COMPTE_RENDU.md +++ b/COMPTE_RENDU.md @@ -6,7 +6,9 @@ # 1.Mesurer -```gcc -O2 banque.c -o banque && time ./banque``` +``` +gcc -O2 banque.c -o banque && time ./banque +``` ``` Empreinte : ff68d260a7a58441 @@ -16,7 +18,7 @@ user 0m4,772s sys 0m0,005s ``` -Le temps d'éxecution du programme est de 4.793 seconde et l'emprunte est +Le temps d'éxecution du programme est de 4.793 seconde et l'emprunte est : [ff68d260a7a58441] # 2.Profiler @@ -80,6 +82,10 @@ La complexité de la fonction est de [O(n)] pour +# 4. Optimisation + + +Optimisation de la fonction 2 nom du commit : "fonction 2 : O(n + C)" diff --git a/banque b/banque index 0ae2b468574f5d6d707dd61f119e9b6a5fcfc01f..c8d192af85610b22703d14e85aac363f57a2fb20 100755 GIT binary patch delta 4785 zcmZ3nl<~$=#t9Na6QmiyzyVA$Fi3b$)LOtd1skBEaC&kelR6f)olNn9J4_%Z!0E|9ndXaJ zR98RPzq9W4j4Lzc#dE|Bc1?7OoVlMcLzaHVYJO zA7pcu$s7J)ih+%Rfq`$bEW0=(|7274{fu0bzp^XydO-EFGcYjlZWiR&%sxrr zfWUv%CVK{k3{D0HhL-{V|NoyX$YH?l815M6YWQvP5doFhgWL=Z`$69H>^%CSF#TmEn{@XNa}FnAni1o_#g^T6c$a$=K& zSlm3iD|kE@Eg=SeD1Fm>h|#0@AV=e`3+xOGrF%VkSJeN)% z6$zj25)}^5-dYXAOO880f#BJ@b;2Jm2A^*K7apBIK#|bR;lp^+qxmPJNAo3U2p=nb z=?OOcxP)ip4^S|dp7ZDoQQ=7Ae}BNI^BupYi;4k=Z~zejY4sD*()3_H@aX*R(R@te z#S{?+hRy@cE-eO(9+vM)U+e`XNm!h@8vgg`3{g>V>5Nekc(IZj6e6!YI`4MJs0jG< zvObYzVAwx_k%7Ub^P01^&4d@}{0t19jK@8jUon-JHR>5Ng)Fg)PV`P!pbRL)O^ zfni?*11J^Ls3iDwUiIm$Q4x62{OAAw25SbNZjeRYF)AATEi&vNMb(Ti%>VrVkC5oC zVC3KCqms~alD~z4eX^K{MyyZgN3f9~7it`1VP^2?6F6Cf4?zo zSjGmmVbgD1HgvH~?i10?mhkPo=+b!;YPK!dY_OGZ3p7BME4(Ox*y7S1qoM$Evj%^Q z8q^k$0u69TzL3Ic9|Oof%{Y&49~BO$1)|5L7#JWn*Qg{I9zZhZ-Y*P4En+d*9yh-s=a%v4sKrm|1&6;ZDT`>&V9+_&?+ zYv*0Ct2=X4G(0-*8s0`qcrM*8a|{d*bl&vn72PX|oFZOq{Q3WXLoEXXe~Tvz$Sbal zpp@Tv$fNlHV?)J%hSJZS*E~8eXujj$7NU~Sa;e0&^CLLB`1HD{u*Q2ZzD%3ERzt4d zk$;;AL(8SoH@z%&9*i$Mnh!IAO0(wQJp8Sx|NsAY?R;%`+qLs<8cK%fWvz^0VCcLF z4tt+&mKz?uqN0-Ur1awV518vZnIW!2)em>4GNwcAksON6og#J~y)L2*Fqby|1{HAp zt)N2Owez)a=U<=h8WjbP&exz6py1J+qoM)N$i1wY77PrXFJbO}0g6-!guAst?zU#& zZ&}3za<(%lP{HvrnM*t{%A@%xIB**Og32TQ*2Mq+{~Nyb=)BSS+N1L*zdR_vGWd4; zs0g@rv#3DhZJRhsyw!e(h0JS4kQJbKb6}XfRa~L|1uUxUTsn_I8&ufww|f2m|KFq6 zR8|~hsjY-K0|Tf;(eUVe{eu7d|Nk!CG4;@_=+Sz>qw{Eqx<}_RkIws`K!hgv9pC={ z_vn28BH+Zj3{|d7A{fl}Kzq>`{1p@;^iib9fss;lC1Apr- zP?_3zw-$f<|NrHYZ~y;80^XzZg{$F# zm&X78|A$nUoi_~szbyI-mahlZ#+@$=zrCFF2jl_}>%{N>{|*1Y{QTqpe~?D0pI~k# zi2C+&GKl*B@-v9~_EPp2SS}YteS0|_ME!sH21I>(DfavSe~*35%yWx3@TZEr6#W1H z|BIVnz_vn?!DoKCUz4v$i3bLL{r~^JD7Og%!xyA#tJij+2`IW*XMrfoA0?t5-K_77 z85lfT50r5Je*jIfhoQ7buWcbnVXtYH$z&U8X{No#lOv^NwOm0h%u?e}k7nCh#-QNq zd|JZm(QV6S!ocufw8NNz;YITQ|NoD%%1mA$ohQ}@vS62gWBT{HYE}^s#tR;utX0O7 zRbuvtNPoUJ_nWLiM(ao#9xkx6Ik?E@8
FOzDQ3&E+&1okDjx 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 FIsiKUFr)wg diff --git a/banque.c b/banque.c index 02b0e39..b00e1b0 100644 --- a/banque.c +++ b/banque.c @@ -88,18 +88,17 @@ void trier_par_montant(Transaction *t, int n) /* F2 : nombre de clients ayant au moins une transaction */ int nb_clients_distincts(const Transaction *t, int n) { + int clients_vus[NB_CLIENTS] = {0}; int nb = 0; + for (int i = 0; i < n; i++) { - int deja_vu = 0; - for (int j = 0; j < i; j++) { - if (t[j].client == t[i].client) { - deja_vu = 1; - break; - } - } - if (!deja_vu) + int client = t[i].client; + if (!clients_vus[client]) { + clients_vus[client] = 1; nb++; + } } + return nb; }