Algoritm de Cautare Binara

8
Aloritm de cautare binara Se aplica doar pe un vector ordonat (fie crescator fie descrescator). Pen implementarea algoritmului vom folosi urmatoarele variabile: St indicele celui mai din stanga element din vector Dr indicele celui mai din dreapta element din vector Mij=(st+dr)/2 indicele din mijlocul vectorului Gasit (care poate fi 1 sau 0) ajuta la implementarea metodei falsei ipoteze N=7 V=1 V=(-1,15,29,30,37,45,63) X=15(valoarea de cautat) Mij=(0+6)div 2=3 X=v[mij]=? 15=30? NU St=0; dr=mij-1 Mij=(0+2)div 2=1 X=v[mij]?DA Gasit=1 Implementarea algoritmului pe vector ordonat crescato //citeste x si vector Gasit=0;//presupunem sa x nu se gaseste in vector St=0;dr=n-1; While(st<=dr&&gasit==0) {mij=(st+dr)/2; If(x==v[mij]) Gasit=1; Else If(x<v[mij]) Dr=mij-1; Else St=mij+1; } If(gasit==1) Cout<<”am gasit”; Else Cout<<”nu am gasit”; Ce modificare trebuie facuta pe algoritm pentru a cauta o valoare x in ordonat descrescator ? //citeste x,vector Gasit=0; St=0;dr=n-1; While(st<=dr&& gasit==0)

Transcript of Algoritm de Cautare Binara

Aloritm de cautare binaraSe aplica doar pe un vector ordonat (fie crescator fie descrescator). Pentru implementarea algoritmului vom folosi urmatoarele variabile: Stindicele celui mai din stanga element din vector Drindicele celui mai din dreapta element din vector Mij=(st+dr)/2indicele din mijlocul vectorului Gasit (care poate fi 1 sau 0) ajuta la implementarea metodei falsei ipoteze N=7 V=1 V=(-1,15,29,30,37,45,63) X=15(valoarea de cautat) Mij=(0+6)div 2=3 X=v[mij]=? 15=30? NU St=0; dr=mij-1 Mij=(0+2)div 2=1 X=v[mij]?DA Gasit=1 //citeste x si vector Gasit=0;//presupunem sa x nu se gaseste in vector St=0;dr=n-1; While(st