Recherche dichotomique recursivite
Résolu
souadhakmi
-
sousou -
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;
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;
A voir également:
- Recherche dichotomique récursive c
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche photo - Guide
- Je recherche une chanson - Guide
- Rechercher ou entrer l'adresse 4 - recherche google ✓ - Forum Windows
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
hh
merci....
skymax406
Messages postés
242
Statut
Membre
24
de plus simple ? !! Oo
sousou
oui bon solution mrc