Les Allergies
Alimentaires
Posez votre question Signaler

Solution de la recherche dichotomique en C [Résolu]

ahmedbj 146Messages postés 25 mars 2007Date d'inscription 31 mai 2011Dernière intervention - Dernière réponse le 19 oct. 2010 à 21:40
Bonjour,
Est-ce quelqu'un peut m'expliquer comment faire une recherche dichotomique d'une valeur dans un tableau d'entier par récursivité en langage C
merci
Lire la suite 

Solution de la recherche dichotomique en C »

9 réponses
Réponse
+7
moins plus
Bonjour,
Je suis encore Dr.SoFtNaF, il désormait qu'il y a un problème avec le forum, je peux pas m'identifier, ban volà le code source en C

#include<stdio.h>
/* Programme de recherche dichotomique d'un élément dans une liste d'entiers */
int main(){
/* DECLARATION DES VARIABLES */
int iTableau[]={1,2,3,5,6,8,9}; /* Tableau TRIE d’entiers */
int iRecherche; /* Elément recherché */
int iPremier; /* Indice du premier élément du sous-tableau analysé */
int iDernier; /* Indice du dernier élément du sous-tableau analysé */
int iMilieu; /* Indice de l'élément du milieu du sous-tableau analysé */
int iTrouve; /* Booléen indiquant si l'élément est trouvé */
int iFin=1; /* Indication de fin de saisie (0=fin) */
/* Tant que l'utilisateur souhaite faire des recherches */
while(iFin)
{
   printf("Quel élément recherchez-vous ? ");
   scanf("%d",&iRecherche);
  /* Initialisation des variables*/
   iPremier=0;
   iDernier=6;
   iTrouve=0;
   /* Tant qu'on a pas trouve l'élément recherché ou que le sous-tableau */
   /* contient plus de 1 élément */
   while((iPremier <= iDernier)&&(iTrouve==0))
      {
       /* Calcul de la position de l'élément du milieu */
           iMilieu=(iPremier+iDernier)/2;
      /* Si l'élément du milieu est l'élément recherché */
           if(iTableau[iMilieu]==iRecherche) iTrouve =1;
           else
                 {
                 /* Si la valeur recherchée est plus petite */
                 /* que la valeur du l'élément du milieu */
                 /* Alors on regarde le sous-tableau de gauche */
                 if(iTableau[iMilieu]>iRecherche) iDernier = iMilieu -1;
                   /* sinon on regarde le sous-tableau de droite*/
                 else iPremier = iMilieu +1;
                 }
          }
          if(!iTrouve) printf("Cette valeur n'appartient pas à la liste\n");
           else printf("Cette valeur appartient à la liste\n");
         printf("Voulez-vous continuer ? (Taper 0 pour sortir du programme) : ");
            scanf("%d",&iFin);
        /* Si l'utilisateur ne saisait pas un nombre, on sort du programme */
         if(!isalpha(iFin)) iFin=0;

          /* reprise d'une recherche */
        iTrouve=0;
    } /* Fin du while */
   } /* Fin du main */


Bonne continuation

Dr.SoFtNaF
Ajouter un commentaire
Réponse
+1
moins plus
salut

voila un exemple à étudier , decortiquer : http://www.enseignement.polytechnique.fr/...

mais avant de reprendre texto le prog pour répondre à un exercice de cours, tu as intéret à bien le comprendre, car cela est réalisé par un bon, un prof de l'ecole polytechnique

cdt
Ajouter un commentaire
Réponse
+1
moins plus
mais le problème c'est que j'ai pas pu bien comprendre le cours de récursivité :( si quelqu'un peut m'aider à trouver un cours sur la récursivité bien expliqué
merci
Ajouter un commentaire
Réponse
+1
moins plus
En informatique et en logique, une fonction ou plus généralement un algorithme qui contient un appel à elle-même est dite récursive

Et tout sur la récursivité : http://www.chambily.com/recursivite/
Ajouter un commentaire
Réponse
+0
moins plus
merci beaucoup
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Encore une autre chose, la deusième partie dans le message, la récursivité en C/C++

tiens ce lien, c fabuleux ici
http://franckh.developpez.com/tutoriels/c-ansi/recursivite/

Cordialement
Dr.SoFtNaF
Ajouter un commentaire
Réponse
+0
moins plus
merci pour votre aide
merci beaucoup
Ajouter un commentaire
Réponse
+0
moins plus
merci bocou ca va m aider XD
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

wow une vielle topique qui s'ouvre après 3 ans, c'est bien de garder nos traces quand on partage ce genre des codes sources.

et bonne courage Denshi.


Cordialement Votre,

Dr.SoFtNaF
Ajouter un commentaire
Ce document intitulé « solution de la recherche dichotomique en C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?