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;
Configuration: Windows XP
Firefox 2.0.0.13

3 réponses

  1. 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
    1. hh
       
      merci....
      0
    2. skymax406 Messages postés 242 Statut Membre 24
       
      de plus simple ? !! Oo
      0
    3. sousou
       
      oui bon solution mrc
      0
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Je pense qu'au bout d'un an il a fini par trouvé ;-) Mais merci de ta contribution !
    1
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 943
     
    Et la question est ?
    0