Dacă elementele vectorului sunt ordonate crescător, putem să ne dăm
seama dacă elementul nu există în vector fără a fi nevoie să parcurgem toate elementele vectorului. Unul dintre algoritmii folosiţi în acest caz este algoritmul de cautare binară. Acest algoritm are la bază principiul înjumătăţirii repetate a domeniului în care se caută elementul, prin împarţirea vectorului în doi subvectori. Notăm cu St primul indice al vectorului şi cu Dr ultimul indice al vectorului, iar m este indicele elementului din mijloc al vectorului m=(st+dr)/2. Se compară valoarea căutată cu valoarea elementului din mijloc. Dacă cele două valori sunt egale înseamnă că s-a găsit elementul. Dacă nu sunt egale vectorul v-a fi împarţit în doi subvectori. Operaţia de căutare constă în identificarea subvectorului în care se poate găsi elementul, prin compararea valorii căutate cu cea din mijloc, după care se divizează acest subvector în doi subvectori ş.a.m.d. până când se găseşte elementul, sau până când nu se mai poate face împarţirea în subvectori, ceea ce înseamnă că nu s-a găsit elementul. Exemplu: Dorim să căutăm elementul x=19 într-un vector cu 9 elemente: 5 8 11 15 17 19 20 23 26 1 2 3 4 5 6 7 8 9
St Dr m St=1 Dr=9
m=[(St+Dr) / 2 ]=[(1+9)/2] m=5
Elementul căutat este x=19 19>17 se caută în subvectorul din dreapta st=m+1=6 19 20 23 26 6 7 8 9 St Dr m St=6 Dr=9 m=[(6+9) / 2]=7
19<20 se caută în subvectorul din stânga dr=m-1=6
m= [(6+6) / 2]=6
Elementul căutat se află pe poziţia m
Algoritmul se incheie Algoritm descris în pseudocod Funcţia CautBin(n,A,x) st←1 dr←n cât timp st≤dr execută m ← [(st+dr)/2] dacă x=A[m] atunci CautBin ← m st ← dr+1 altfel dacă x<A[m] atunci dr ← m-1 altfel st ← m+1 sfdacă sfdacă sfcât timp sfCautBin