cautarea binara

2
Algoritmul de căutare binară oferă performanţe mai bune decât algoritmu căutare secvenţială. El funcţionează astfel: se compară numărul de căut elementul aat la mijlocul şirului (element care se mai numeşte şi pivo "n care cele două elemente coincid căutarea s#a "nc$eiat cu succes. %a numărul de căutat este mai mare decât pivotul& se continuă căutarea "n manieră "n subşirul delimitat de pivot şi capătul şirului iniţial. %acă căutat este mai mic decât pivotul se continuă căutarea "n aceeaşi manie subşirul delimitat de pivot şi "nceputul şirului iniţial. Algoritmul pr "ncadrează "n clasa algoritmilor elaboraţi conform te$nicii de program et 'mpera. nul din dezavantajele acestui algoritm este că şirul "n car căutarea trebuie să )e iniţial sortat. PSEUDOCOD: Este dat un vector K cu N elemente în ordine crescãtoare ,acest algoritm fa cãutare pentru un element având valoarea X . aria!ilele LOW ,MIDDLE si HIGH notea"ã limita inferoarã , mi#locul si limita superioarã a int cãutare . $unctia returnea"ã inde%ul elemntului dacã avem cãutare cu succes ,altfel returnea"ã 0 . Pasul 1. &O':( ) *+ * :( - Pasul 2 . Repetã pasii , / pînã cînd &O' 0( *+ * Pasul 3. 1+DD&E : ( 23 &O' 4 *+ * 5 6 7 8 Pasul 4. Dacã 9 0 2 1+DD&E 8 atunci *+ * :( 1+DD&E;) altel !acã 9 < 2 1+DD&E 8 atunci&O' :( 1+DD&E 4 ) altel cãutare cu succes returnea"ã 1+DD&E Pasul ". Cãutare fãrã succes returnea"ã 0 Pasul ) initiali"ea"ã varia!ilele LOW si HIGH , pasul calculea"ã valoarea varia!ilei MIDDLE , care este mi#locul ta!elei .Pasul / face comparatiil c=eia de cãutat si valorile limitã si returnea"ã c=eia cãutata dacã e Pasul > returnea"ã valoarea 0 insemnând cãutare fãrã succes .

Upload: corbu-cristian

Post on 02-Nov-2015

217 views

Category:

Documents


0 download

DESCRIPTION

Cautarea binara

TRANSCRIPT

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 vectorK cuNelemente n ordine cresctoare ,acest algoritm face o cutare pentru un element avnd valoareaX. VariabileleLOW,MIDDLE siHIGHnoteaz limita inferoar , mijlocul si limita superioar a intervalului de cutare . Functia returneaz indexul elemntului dac avemcutare cu succes,altfel returneaz0.Pasul1. LOW:= 1HIGH := NPasul2.Repet pasii 3, 4 pn cnd LOW K [ MIDDLE ]atunciLOW := MIDDLE + 1altfelcutare cu succes returneaz MIDDLEPasul5.Cutare fr succes returneaz0Pasul 1 initializeaz variabileleLOWsiHIGH, pasul 3 calculeaz valoarea variabileiMIDDLE, 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 valoarea0 insemnnd cutare fr succes .