Sunteți pe pagina 1din 4

Cutarea binar C++ #include<iostream.h> #include<math.

.h> int v[25]; int i,n,li,ls,mij,gasit,x; void main() { cout<<"n="; cin>>n; cout<<"Cauta elementul ="; cin>>x; for(i=1;i<=n;i++) {cout<<"v["<<i<<"]="; cin>>v[i];} for(i=1;i<=n;i++) cout<<v[i]<<" "; cout<<endl; li=1; //limita inferioara ls=n; //limita superioara gasit=0; // Cautarea binara are loc numai in cazul in care tabloul este ordonat crescator while((li<=ls)&&(!gasit)) { mij=floor((li+ls)/2); //aflam indicele care reprezinta mijlocul tabloului. if(x==v[mij]) { cout<<"L-am gasit pe pozitia "<<mij; gasit=1; } else if(x>v[mij]) // Cautare se face in dreapta li=mij+1; // Actualizare li else ls=mij-1; // Cautarea se face in stanga } if(gasit==0) cout<<x<<"Elementul cautat nu se gaseste in tablou"; }

Bubble Sort -sortarea crescatoarea a unui tablou unidimensional in C++ #include<iostream.h> int v[25]; int i, n, ok, aux; void main() { cout<<"n="; cin>>n; for(i=1;i<=n;i++) { cout<<"v["<<i<<"]="; cin>>v[i]; } for(i=1;i<=n;i++) cout<<v[i]<<" "; //Sortarea crescatoare Bubble Sort do { ok=1; for(i=1;i<=n-1;i++) if(v[i]>v[i+1]) { //Interschimbare aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; ok=0; } }while(ok!=1); for(i=1;i<=n;i++)cout<<v[i]<<" ";}

Sortarea prin selectie Select Sort C++ /* Fiecare element v[i] se compara cu toate aflate dupa el. Daca se gaseste un element mai mic decat v[i] atunci acestea se vor interschimba. Cand v[i] si-a incheiat rolul de pivot, partea din vector pana la acesta inclusiv, este sortata crescator. */ #include<iostream.h> int v[25],n,i,j,aux; void main() { cout<<"nr de elemente="; cin>>n; for(i=0;i<n;i++) { cout<<"v["<<i<<"]="; cin>>v[i]; } for(i=0;i<n;i++) cout<<v[i]<<" ";

for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(v[i]>v[j]) { aux=v[j]; v[j]=v[i]; v[i]=aux; } cout<<endl; for(i=0;i<n;i++) cout<<v[i]<<" "; }

Interclasarea a doua tablouri unidimensionale in C++ #include<iostream.h> int a,b,c[25]; int n,m,i,j,k; void main(void) { cout<<Introduceti lungimile celor 2 vectori a si b= ; cin>>m>>n; //Cititi elementele celor 2 vectori ordonati crescatori for(i=1;i<=m;i++) { cout<<a["<<i<<"]=; cin>>a[i]; } for(i=1;i<=n;i++) { cout<<b["<<i<<"]=; cin>>b[i]; } //Interclasarea i=1; // parcurg sirul a j=1; // parcurg sirul b k=0; while((i<=m)&&(j<=n)) {if(a[i]<b[j]) { k++; c[k]=a[i]; // adaug la sirul c un element din a i++; }else { k++; c[k]=b[j]; j++; }} // Adaugam elementele ramase neparcurse if(i<=m) { while(i<=m) { k++; c[k]=a[i]; // copiez la sfarsitul sirului c elementele ramase din a i++;} } if(j<=n) { while(j<=n) { k++; c[k]=b[j]; // copiez la sfarsitul sirului c elementele ramase din b j++; } } //Afisez vectorul interclasat for(i=1;i<=k;i++) // sirul c are lungimea k=m+n cout<<c[i]<<" "<<endl; }

S-ar putea să vă placă și