Dichotomie en recursif

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 357 fois - Téléchargée 57 fois

Contenu du snippet

le titre est plutot explicite!!!

Source / Exemple :


#include<iostream.h>

int Dicho_Rec(int , int*, int, int);

void main()
{
  int nb, ind;
  int tab[15]={2,9,12,15,20,23,25,65,67,69,72,76,85,89,100};
  do {
    cout<<"donner un nombre a chercher:(0 pour arreter)\n";
    cin >>nb;
    if (nb != 0) 
	{
         
         ind=Dicho_Rec(nb,tab, 0, 15);
         if (ind == -1) 
			 cout<<"ce nombre nest pas dans le tableau!\n";

         else 
			 cout<<"ce nombre est a l'indice"<<ind<<"\n";

    }
  } while (nb !=0);
}

int Dicho_Rec(int nbcher, int *point, int deb, int fin)
{
     int mil = (deb+fin)/2;

     if(deb > fin) 
		 return (-1);

     if(nbcher == point[mil]) 
		 return mil;
     if (nbcher < point[mil])
	return Dicho_Rec(nbcher, point, deb, mil-1);
	if(nbcher > point[mil])
     return Dicho_Rec(nbcher, point, mil+1, fin);
}

A voir également

Ajouter un commentaire

Commentaires

cs_kjus
Messages postés
269
Date d'inscription
mercredi 24 avril 2002
Statut
Membre
Dernière intervention
9 juin 2003
-
Salut,
-void main n'est pas standart, utiliser int main() et return 0; a la place
Sinon c'est pas mal !
cs_NiFF
Messages postés
92
Date d'inscription
dimanche 2 juin 2002
Statut
Membre
Dernière intervention
24 juin 2004
-
bizarre ta déclaration de Dicho_Rec avec seulement les types, on dirait la déclaration pour une DLL

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.