From 872935c3a2c36f563fd5601896ae514e7e030c34 Mon Sep 17 00:00:00 2001 From: Ryad MEHIRI Date: Wed, 14 Oct 2026 14:01:55 +0200 Subject: [PATCH] =?UTF-8?q?Filtrer=20les=20mots=20vides=20sur=20la=20premi?= =?UTF-8?q?=C3=A8re=20lettre=20avant=20de=20comparer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit est_mot_vide appelait egales sur les 60 mots vides pour chacun des 250 000 mots : 12 millions d'appels. On ne fait la comparaison complète que si la première lettre correspond (873 000 appels à egales au total). Temps : 0,20 s → 0,15 s (médiane, bruit de mesure de l'ordre de 0,05 s). Empreinte inchangée (1d53de903efd2b7c). Co-Authored-By: Claude Opus 5.5 --- analyseur.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/analyseur.c b/analyseur.c index 92c41f9..5291083 100644 --- a/analyseur.c +++ b/analyseur.c @@ -229,7 +229,8 @@ typedef struct { int est_mot_vide(const char *mot) { for (int i = 0; i < NB_MOTS_VIDES; i++) { - if (egales(mot, MOTS_VIDES[i])) + /* comparaison complète seulement si la première lettre correspond */ + if (MOTS_VIDES[i][0] == mot[0] && egales(mot, MOTS_VIDES[i])) return 1; } return 0;