Recherche dichotomique recursivite

Résolu/Fermé
souadhakmi - 16 avril 2008 à 18:00
 sousou - 29 avril 2014 à 20:59
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

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
merci....
0
skymax406 Messages postés 215 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 22 avril 2015 24
9 nov. 2012 à 22:48
de plus simple ? !! Oo
0
oui bon solution mrc
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
2 juin 2009 à 20:04
Je pense qu'au bout d'un an il a fini par trouvé ;-) Mais merci de ta contribution !
1
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
16 avril 2008 à 23:47
Et la question est ?
0