Dichotomie en recursif

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

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.