From 6d95a3f2a299cfd7ae40107cf05facdecd629bbc Mon Sep 17 00:00:00 2001 From: Zaabay Date: Wed, 21 Oct 2026 12:21:45 +0200 Subject: [PATCH] =?UTF-8?q?F1=20:=20r=C3=A9duction=20de=20O(n=C2=B2)=20?= =?UTF-8?q?=C3=A0=20O(n=20log=20n)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- banque | Bin 21160 -> 21248 bytes banque.c | 18 ++++++++---------- evaluer.sh | 0 resultats.csv | 3 +++ 4 files changed, 11 insertions(+), 10 deletions(-) mode change 100644 => 100755 evaluer.sh create mode 100644 resultats.csv diff --git a/banque b/banque index 146ab54aee1fd73a141175ee553b25f36a3ef178..06ac886c1b1f47ad6daee7b5c49828f5d6c5b206 100755 GIT binary patch delta 3865 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 diff --git a/banque.c b/banque.c index 0398bc6..6e07b7c 100644 --- a/banque.c +++ b/banque.c @@ -71,18 +71,16 @@ Transaction *generer_transactions(int n) /* ------------------------------------------------------------------ */ /* F1 : trie les transactions par montant croissant, puis par id */ +int compareFunction(const void *ptr1, const void *ptr2){ + const Transaction *t1 = ptr1, *t2 = ptr2; + if(t1->montant != t2->montant) + return (t1->montant > t2->montant) - (t1->montant < t2->montant); + return (t1->id > t2->id) - (t1->id < t2->id); +} + void trier_par_montant(Transaction *t, int n) { - for (int i = 0; i < n - 1; i++) { - for (int j = 0; j < n - 1 - i; j++) { - if (t[j].montant > t[j + 1].montant || - (t[j].montant == t[j + 1].montant && t[j].id > t[j + 1].id)) { - Transaction tmp = t[j]; - t[j] = t[j + 1]; - t[j + 1] = tmp; - } - } - } + qsort(t, n, sizeof(Transaction), compareFunction); } /* F2 : nombre de clients ayant au moins une transaction */ diff --git a/evaluer.sh b/evaluer.sh old mode 100644 new mode 100755 diff --git a/resultats.csv b/resultats.csv new file mode 100644 index 0000000..362e90e --- /dev/null +++ b/resultats.csv @@ -0,0 +1,3 @@ +zaabay;-;2230 +zaabay;-;946 +zaabay;-;913