„Algoritmul de căutare binară este un algoritm de căutare folosit pentru a găsi un element într-o listă ordonată (tablou unidimensional/vector). Algoritmul funcționează pe baza tehnicii divide et impera. Valoarea căutată este comparată cu cea a elementului din mijlocul listei. Dacă e egală cu cea a acelui element, algoritmul se termină. Dacă e mai mare decât acea valoare, algoritmul se reia, de la mijlocul listei până la sfârșit, iar dacă e mai mică, algoritmul se reia pentru elementele de la începutul listei până la mijloc. Întrucât la fiecare pas cardinalul mulțimii de elemente în care se efectuează căutarea se înjumătățește, algoritmul are complexitate logaritmică.” (Wikipedia)

#include <iostream.h>
#include <fstream.h>
int v[100]; //se poate da orice valoare dorim în funcție de numărul de valori în care se efectuează căutarea
int n, i, ok, st, dr, m, x, gasit, aux;
ifstream fin("vector.txt");
main()
{
fin>>n;
for (i=1; i<=n; i++) fin>>v[i];
do {ok=0;
	for (i=1; i<=n-1; i++)
		if (v[i]>v[i+1]) {v[i]=v[i]+v[i+1];
							v[i+1]=v[i]-v[i+1];
							v[i]=v[i]-v[i+1];
							ok=1;}
	}
while (ok==1);

cout<<"Introduceti numarul cautat "; cin>>x;
st=1; dr=n; //definim marginile
while (st<dr)
	{m=(st+dr)/2;
	if(x>v[m]){st=m+1;
				continue;}
	if(x<v[m]){dr=m-1;
				continue;}
	if(x==v[m]){cout<<x<<' '<<"a fost gasit!"<<endl;
				gasit=1;
				break;}
	}
fin.close();
}