forked from menault/2026_TD1_DEV51_Qualite_Algo
dichotomie
This commit is contained in:
+35
-2
@@ -102,7 +102,7 @@ int est_lettre(char c)
|
|||||||
/* Génération du texte */
|
/* Génération du texte */
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
|
|
||||||
static const char *MOTS_VIDES[] = {
|
static char *MOTS_VIDES[] = {
|
||||||
"le", "la", "les", "un", "une", "des", "du", "de", "et", "ou",
|
"le", "la", "les", "un", "une", "des", "du", "de", "et", "ou",
|
||||||
"mais", "donc", "or", "ni", "car", "que", "qui", "quoi", "dont", "ou",
|
"mais", "donc", "or", "ni", "car", "que", "qui", "quoi", "dont", "ou",
|
||||||
"a", "au", "aux", "en", "dans", "par", "pour", "sur", "sous", "avec",
|
"a", "au", "aux", "en", "dans", "par", "pour", "sur", "sous", "avec",
|
||||||
@@ -226,12 +226,44 @@ typedef struct {
|
|||||||
int occurrences;
|
int occurrences;
|
||||||
} Entree;
|
} Entree;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int doit_bouger(const char *a, const char *b)
|
||||||
|
{
|
||||||
|
return comparer(a, b) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void trier_mots_vides()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < NB_MOTS_VIDES - 1; i++) {
|
||||||
|
for (int j = 0; j < NB_MOTS_VIDES - 1 - i; j++) {
|
||||||
|
if (doit_bouger(&MOTS_VIDES[j], &MOTS_VIDES[j + 1])) {
|
||||||
|
char tmp = *MOTS_VIDES[j];
|
||||||
|
MOTS_VIDES[j] = MOTS_VIDES[j + 1];
|
||||||
|
MOTS_VIDES[j + 1] = &tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int est_mot_vide(const char *mot)
|
int est_mot_vide(const char *mot)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < NB_MOTS_VIDES; i++) {
|
int borne_min = 0;
|
||||||
|
int borne_max = NB_MOTS_VIDES;
|
||||||
|
while(borne_min < borne_max){
|
||||||
|
int i = (borne_max - borne_min)/2 +borne_min;
|
||||||
if (egales(mot,MOTS_VIDES[i]))
|
if (egales(mot,MOTS_VIDES[i]))
|
||||||
return 1;
|
return 1;
|
||||||
|
if (comparer(mot,MOTS_VIDES[i]) > 1)
|
||||||
|
borne_min = i;
|
||||||
|
else
|
||||||
|
borne_max = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -403,6 +435,7 @@ double racine(double x)
|
|||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
|
trier_mots_vides();
|
||||||
char **vocab = generer_vocabulaire();
|
char **vocab = generer_vocabulaire();
|
||||||
char *texte = generer_texte(vocab, NB_MOTS_TEXTE);
|
char *texte = generer_texte(vocab, NB_MOTS_TEXTE);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user