Documente Academic
Documente Profesional
Documente Cultură
Căutare Secvenţială: OBSERVATIE: Numarul Maxim de Comparatii Efectuate Este N (Dimensiunea
Căutare Secvenţială: OBSERVATIE: Numarul Maxim de Comparatii Efectuate Este N (Dimensiunea
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.
Pentru aceasta se parcurge şirul de la un capăt la celălalt şi se compară
numărul de căutat cu fiecare element din şir. În cazul în care s-a găsit
corespondenţă (egalitate),un indicator flag este poziţionat.
La sfârşitul parcurgerii şirului, indicatorul ne va arăta dacă numărul căutat
aparţine sau nu şirului.
gasit=0;
for(i=1; i<=n; i++) if (a[i]==x) {gasit=1;
break;}
if (gasit==0) cout<<"Numarul nu apartine sirului !"<<endl;
else cout<<"Numarul apartine sirului !" <<endl;
return 0;}
Tema 1.
Să se transforme programul anterior astfel încât să se afişeze poziţiile în care
apare elementul căutat. Daca numarul cautat nu apartine vectorului, se va
afisa un mesaj corespunzator.
Căutare binară
Unul din dezavantajele acestui algoritm este că şirul în care se face căutarea trebuie
să fie iniţial sortat.
OBSERVATII:
-Vectorul in care se face cautarea trebuie sa fie ordonat (presupunem ca este
ordonat crescator)
-Numarul de comparatii este mai mic sau egal cu .
#include<iostream>
using namespace std;
int main()
{ int i, n, x, st, dr, mijl, gasit, a[50];
cout<<"Introduceti numarul elementelor vectorului si elementele acestuia ";
cin>>n;
for(i=1;i<=n;i++) cin>>a[i];
Tema 2.
Sa se transforme programul de mai sus astfel incat sa se afiseze de cate ori
apare valoarea X in vectorul dat. Se considera ca vectorul este ordonat
crescator.
Tema3.
Sa se modifice programul de mai sus astfel incat sa se afiseze cate elemente
din vectorul ordonat au fost comparate cu valoarea x, pana cand fie a fost
gasita valoarea cautata in vector, fie se decide ca x nu apartine vectorului.