Pretraživanje nizova

Veoma često javlja se potreba ispitivanja da li određeni element pripada određenom skupu, da li je moguće elemente skupa urediti po nekom kriterijumu? Znamo da skup istih elemenata po tip daju niz, kada je reč o programiranju, pa tehnika pretraživnja i uređivanja nizova čini jednu od najznačajniih grupa obrade podataka.

Za pretraživanje nizova postoje dva algoritma koji se načešće koriste u praksi

Sekcencionalno pretraživanje

Uzastopno upoređivanje elemenata niza sa traženom vrednošću (provera da li se vrednost nalazi  u nizu), sve dok se vrednost ne pronađe ili kada se dođe do kraj niza (tražena vrednost nije u nizu) su karakteristike sekvencionalnog pretraživana. 

Sekvencionalno pretraživanje          Funkcija za sekvencionalno pretraživanje

Da je tražena vrednost pronađena zna se po tome što je ciklus pretraživanja završen pre kraja niza (i<n). Vrednost funkcije je 1 u slučaju uspeha, 0 u slučaju neuspeha.

Jednostavnost je dobra strana pretraživanja, mana je relativno veliki broj proba da bi se došlo do rezultata.

Pr1.

U jednom razredu ima n učenika. Prosečna standardna visina je b. da li u razredu ima učenika sa standardnom visinom?

Rešenje:

#include <cstdlib>
#include <iostream>

using namespace std;

/*Funkcija za pretrazivanje*/
int sektra1 (int a[],int n,int b)
{
int i;
for (i=0;i<n && a[i]==b;i++)
return i<n;
}

/*glavni program*/
int main(int argc, char *argv[])
{
int a[30];
int b, n, i;
cout<<„Unesi standardnu visinu?“<<endl;
cin>>b;
cout<<„Unesi broj ucenika u razredu?“<<endl;
cin>>n;
cout<<„Unesi visine svakog ucenika?“<<endl;
for (i=0;i<n;i++)
{
cout<<„Unesi visinu ucenika sa rednim brojem „<<i+1<<endl;
cin>>a[i];

}
cout <<sektra1(a,n,b);

if (sektra1 (a,n,b)==1)
{
cout <<„Postoje ucenici cija visina je „<< b<< „, prosecna visina „<<endl;
}
else
{
cout <<“ Ne postoje ucenici cija visina je „<< b<< „(prosecna visina) „<<endl;
}
system(„PAUSE“);
return EXIT_SUCCESS;
}

 

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se /  Promeni )

Google photo

Komentarišet koristeći svoj Google nalog. Odjavite se /  Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se /  Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se /  Promeni )

Povezivanje sa %s