miercuri, 13 noiembrie 2013

Cautarea binara

Principiul metodei
Se da un sir de n elemente si se cere sa se gaseasca un element V[i].
Sirul se scrie ca un vector v[1],v[2],.....,v[i],....v[n]
Se determina pozitia de mijloc v[m]=[(1+n)/2] se compara v[m] cu v[i](elementul cautat)
Daca v[i]<v[m] se cauta in stanga lui v[m]
Daca v[i]>v[m] se cauta in stanga lui v[m]
altfel v[i]=v[m]

Date:
intrare n nr elem sir(vector) -tip nr natural
Date iesire


algoritm cautare binara
//se considera elem tabloului v
//elementele sunt ordonate crescator
citeste v[i]
p=1//pozitia de inceput sir
u=n//pozitia de sfarsit sir
m=[(p+u)/2]
cat timp(p<=u)si(v[i]<>v[m])executa
   daca v[i]< v[m] atunci
             u=m-1
          altfel
              p=m+1
  sfarsit daca
              m=[(p+u)/2]
  sfarsit cat timp
  daca (p<=u) atunci
    scrie "valoare gasita pe pozitia" m
      altfel
    scrie"valoarea nu exista"
    sfarsit daca
    sfarsit algoritm cautare binara
tema
Modificati algoritmul de cautare binara pentru cazul cand tabloul este ordonat descrescator