Sunteți pe pagina 1din 1

Algoritmul de cutare binar ofer performane mai bune dect algoritmul de

cutare secvenial. El funcioneaz astfel: se compar numrul de cutat cu


elementul aflat la mijlocul irului (element care se mai numete i pivot). n cazul
n care cele dou elemente coincid cutarea s-a ncheiat cu succes. Dac
numrul de cutat este mai mare dect pivotul, se continu cutarea n aceeai
manier n subirul delimitat de pivot i captul irului iniial. Dac numrul de
cutat este mai mic dect pivotul se continu cutarea n aceeai manier n
subirul delimitat de pivot i nceputul irului iniial. Algoritmul prezentat se
ncadreaz n clasa algoritmilor elaborai conform tehnicii de programare Divide
et Impera. Unul din dezavantajele acestui algoritm este c irul n care se face
cutarea trebuie s fie iniial sortat.

PSEUDOCOD:
Este dat un vector K cu N elemente n ordine cresctoare ,acest algoritm face o
cutare pentru un element avnd valoarea X . Variabilele LOW , MIDDLE
si HIGH noteaz limita inferoar , mijlocul si limita superioar a intervalului de
cutare . Functia returneaz indexul elemntului dac avem cutare cu succes ,altfel
returneaz 0 .
Pasul 1. LOW := 1
HIGH := N
Pasul 2. Repet pasii 3, 4 pn cnd LOW <= HIGH
Pasul 3. MIDDLE := [( LOW + HIGH ) / 2 ]
Pasul 4. Dac X < K [ MIDDLE ]
atunci HIGH := MIDDLE-1
altfel dac X > K [ MIDDLE ]
atunci LOW := MIDDLE + 1
altfel cutare cu succes
returneaz MIDDLE
Pasul 5. Cutare fr succes
returneaz 0

Pasul 1 initializeaz variabilele LOW si HIGH, pasul 3 calculeaz valoarea


variabilei MIDDLE , care este mijlocul tabelei .Pasul 4 face comparatiile ntre
cheia de cutat si valorile limit si returneaz cheia cutata dac este gsit .
Pasul 5 returneaz valoarea 0 insemnnd cutare fr succes .