Recherche dichotomique recursivite

Résolu
souadhakmi -  
 sousou -
Bonjour,
fonction rd(t:tab[1..n]entie ,x,deb,fin:entie):booleen;
var m:entie;
debut
si (x<t[i]) ou (x>t[i]) alors rd:=faux
sinon debut
si (deb>fin) alors rd:=faux
sinon debus
m:= (deb+fin)/2
si x=t[i] alors rd:= vraie
sinon
si x<t[m] alors rd:=rd(t,x,deb,fin,m-1);
sinon
si x>t[m] alors rd:=rd(t,x,deb,fin,m+1);
fin;
fin;

3 réponses

DiGui
 
Voici quelque chose de plus simple :
Fonction Dicho (;nbre, ;bi, ;bs : entier, ;v: vecteur d'entier) à résultat booléen
	Pivot : entier
	Trouve : booléen
	Si bi <= bs alors
		pivot = (bi + bs)/2
		Si v[pivot] = nbre alors
			trouve = vrai
		Sinon
			Si v[pivot] > nbre alors
				trouve = dicho(nbre, pivot + 1, bs, v)
			Sinon
				trouve = dicho(nbre, bi, pivot - 1, v)
			FSi
		FSi
	Sinon
		trouve <= faux
	FSi
	Résultat trouve
FFonc
8
hh
 
merci....
0
skymax406 Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   24
 
de plus simple ? !! Oo
0
sousou
 
oui bon solution mrc
0
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Je pense qu'au bout d'un an il a fini par trouvé ;-) Mais merci de ta contribution !
1
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Et la question est ?
0