Sunteți pe pagina 1din 2

Căutare secvenţială

Căutarea secvenţială este unul dintre cei mai simpli algoritmi studiaţi. El urmăreşte să verifice
apartenenţa unui element la un şir de elemente de aceeaşi natură, în speţă a unui număr la un şir de
numere.

gasit=0
pentru i=1,n
daca a[i]=x atunci
gasit=1;
daca gasit=1 atunci
scrie „EXISTA”
altfel
scrie „NU EXISTA”

Pentru aceasta se parcurge şirul de la un capăt la celălalt şi se compară numărul de căutat cu


fiecare număr din şir. În cazul în care s-a găsit corespondenţă(egalitate), un indicator –gasit- este
modificat ]n 1.

La sfârşitul parcurgerii şirului, indicatorul ne va arăta dacă numărul căutat aparţine sau nu
şirului.

Căutare binară
Algoritmul de căutare binară oferă performanţe mai bune decât algoritmul de căutare
secvenţială. El funcţionează astfel:

1. se compară numărul de căutat cu elementul aflat la mijlocul şirului (element care se


mai numeşte şi pivot).
2. în cazul în care cele două elemente coincid căutarea s-a încheiat cu succes.
3. dacă numărul de căutat este mai mare decât pivotul, se continuă căutarea în aceeaşi
manieră în subşirul delimitat de pivot şi capătul şirului iniţial.
4. dacă numărul de căutat este mai mic decât pivotul se continuă căutarea în aceeaşi
manieră în subşirul delimitat de pivot şi începutul şirului iniţial.
Unul din dezavantajele acestui algoritm este că şirul în care se face căutarea trebuie să fie
iniţial sortat.

s=1
d=n;
gasit=0
cat timp s<=d and !gasit executa
mij=(s+d)/2
daca elementul a[mij] este cel cautat x atunci
gasit=1
altfel
daca elementul a[mij] < decat cel cautat x atunci
d=mij-1
altfel
s=mij+1
daca gasit=1 atunci
scrie „EXISTA”
altfel
scrie „NU EXISTA”
Rezolvați pe caiet:

Scrieți pe calculator și apoi in caiet:

1. Să se transforme algoritmul de căutare liniară astfel încât să se afişeze


a. poziţiile în care apare elementul căutat.
b. prima apariție a elemntului căutat
c. ultima apariție a elemntului căutat

2. Să se scrie un program care verifică dacă un număr citit de la tastatură se găsește printre
elementele de pe poziții pare ale unui vector x. În vectorul (54,12,75,3,45,44,1) numărul
12 se găsește pe poziția 2 iar 75,sau 22 nu se găsesc pe poziții pare.
a. Folosind căutare liniară – vector nesortat
b. Folosind căutare binară- vectorul inițial ordonat
3. Se dau două șiruri de numere întregi, cu cîte n elemente fiecare. Scrieți un program care
testează dacă elementul maxim al primului șir se găsește în cel de-al doilea șir.
4. Se dau n și m două numere naturale diferite de zero și două mulțimi: mulțimea A cu n
elemente și B cu m elemente. Să se scrie câte un program care calculează:
a. Intersecția celor două mulțimi
b. Reuniunea lor
c. Diferența A-B. și B-A

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