Sunteți pe pagina 1din 3

CAUTAREA UNUI ELEMENT

Cautare secventiala

1. Se da un vector x cu n elemente numere intregi distincte si un nr. intreg a. Sa se verifice daca


a se afla in vector. In caz afirmativ sa se afiseze pozitia pe care se afla.

Cautare binara

2. Se da un vector x cu n elemente numere intregi distincte ordonate crescator si un nr. intreg a.


Sa se verifice daca a se afla in vector si in caz afirmativ sa se afiseze pozitia pe care se afla.
3. Se da un vector x cu n elemente numere intregi distincte ordonate descrescator si un nr.
intreg Sa se verifice daca a se afla in vector si in caz afirmativ sa se afiseze pozitia pe care se
afla.
4. 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, tipărind
TRUE sau FALSE. Se vor considera următoarele situații :
a) se consideră vectorul al doilea nesortat ;

Exemplu Dacă a = ( 1, 9, 4, 3, 7 ) iar b = ( 777, 26, 6, 1, 12, 235, 9, 78, 94, 101 ) maximul din a
(adica 9) se găsește în b pe poziția 7.

b) Vectorul al doilea se consideră sortat iar căutarea se va face folosind algoritmul de căutare
binară.

5. Fișierul bac.txt conține numere naturale din intervalul [1,104]: pe prima linie numărul n, pe a
doua linie un șir de n numere ordonate strict crescător, iar pe a treia linie două numere, x și
y (x≤y). Numerele de pe aceeași linie sunt separate prin câte un spațiu.
Se cere să se afișeze pe ecran cel mai mare număr din șir care aparține intervalului [x,y].
Dacă nu există un astfel de număr, se afișează pe ecran mesajul nu exista.
Pentru determinarea numărului cerut se utilizează un algoritm eficient din punctul de vedere
al timpului de executare.
Exemplu: dacă fișierul conține numerele
5
2 7 16 49 100
10 30
atunci pe ecran se afișează
16
a) Descrieți în limbaj natural algoritmul utilizat, justificând eficiența acestuia.
b) Scrieți programul C/C++ corespunzător algoritmului descris.

6. Fișierul bac.txt conține numere naturale din intervalul [1,104]: pe prima linie numărul n, pe a
doua linie un șir de n numere ordonate strict descrescător, iar pe a treia linie două numere, x
și y (x≤y). Numerele de pe aceeași linie sunt separate prin câte un spațiu.
Se cere să se afișeze pe ecran cel mai mare număr din șir care aparține intervalului [x,y].
Dacă nu există un astfel de număr, se afișează pe ecran mesajul nu exista.
Pentru determinarea numărului cerut se utilizează un algoritm eficient din punctul de vedere
al timpului de executare.
Exemplu: dacă fișierul conține numerele
5
100 49 16 7 2
10 30
atunci pe ecran se afișează
16
a) Descrieți în limbaj natural algoritmul utilizat, justificând eficiența acestuia.
b) Scrieți programul C/C++ corespunzător algoritmului descris.

7. Fișierul bac.txt conține numere naturale din intervalul [1,104]: pe prima linie numărul n, pe a
doua linie un șir de n numere ordonate strict crescător, iar pe a treia linie două numere, x și
y (x≤y). Numerele de pe aceeași linie sunt separate prin câte un spațiu.
Se cere să se afișeze pe ecran cel mai mic număr din șir care aparține intervalului [x,y]. Dacă
nu există un astfel de număr, se afișează pe ecran mesajul nu exista.
Pentru determinarea numărului cerut se utilizează un algoritm eficient din punctul de vedere
al timpului de executare.
Exemplu: dacă fișierul conține numerele
5
2 7 16 49 100
10 30
atunci pe ecran se afișează
16
a) Descrieți în limbaj natural algoritmul utilizat, justificând eficiența acestuia.
b) Scrieți programul C/C++ corespunzător algoritmului descris.

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