Rechercher : dans
Par :

Solution de la recherche dichotomique en C

Dernière réponse le 18 mar 2008 à 14:27:52 ahmedbj, le 21 oct 2007 à 20:34:27 
 Signaler ce message aux modérateurs

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

N'oubli pas de vider la corbeille,Car elle est sur ton bureau

Configuration: Windows XP
Firefox 2.0.0.8

Meilleures réponses pour « solution de la recherche dichotomique en C » dans :
Vérifier si un nombre entier est un nombre premier en C VoirDéfinition nombre premier Algorithme 1 : les diviseurs compris entre 2 et N-1 seront testés Algorithme 2 : les diviseurs pairs ne seront pas testés, la recherche se limitant aux diviseurs impairs Algorithme 3 : les diviseurs impairs jusqu'à la...
Ajouter son site dans les moteurs de recherche VoirComment ajouter son site dans les moteurs de recherche C'est une question que tous se posent ... Le principe est le même mais le fonctionnement est parfois différent selon les moteurs ! En voici donc quelques-uns, mais dans une liste non...
[VBA] RechercheV Polyvalente VoirRECHERCHE POLYVALENTE Pour les accros et les inconditionnels des fonctions d'Excel, avant de crier au scandale, lisez les quelques lignes suivantes. La RechercheV d'origine a beaucoup de limites: La colonne de la donnée doit être avec un offset...
Web - Moteur de recherche VoirIl existe une énorme quantité d'informations sur Internet (plusieurs millions ou milliards de documents), et ces informations sont pour la plupart renouvelées quotidiennement. Le moteur de recherche est un élément indispensable pour s'y...

1

jee pee, le 21 oct 2007 à 20:42:24

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

Répondre à jee pee

2

ahmedbj, le 21 oct 2007 à 20:57:47

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
N'oubli pas de vider la corbeille,Car elle est sur ton bureau

Répondre à ahmedbj

3

Dr.SoFtNaF, le 21 oct 2007 à 21:01:01

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

Répondre à Dr.SoFtNaF

4

jee pee, le 21 oct 2007 à 21:04:16

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/

Répondre à jee pee

5

ahmedbj, le 22 oct 2007 à 01:28:39

Merci beaucoup
N'oubli pas de vider la corbeille,Car elle est sur ton bureau

Répondre à ahmedbj

6

Dr.SoFtNaF, le 22 oct 2007 à 01:46:10

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

Répondre à Dr.SoFtNaF

7

 ahmedbj, le 18 mar 2008 à 14:27:52

Merci pour votre aide
merci beaucoup
N'oubli pas de vider la corbeille,Car elle est sur ton bureau

Répondre à ahmedbj
Collection CommentÇaMarche.net