Algoritmi za pretraživanje podataka

Ivana Šimić
Uvod






povecalo

Valid HTML 4.01 Transitional

Pretopostavimo da ne znamo kakvo polje pretražujemo, tj. ne znamo u kojem su redoslijedu elementi tog polja.

Ako nas zanima točno određeni element tog polja, morat ćemo proći kroz cijelo polje, pregledavajući svaki od elemenata kako bi utvrdili nalazi li se traženi element u polju ili ne.

Na sljedećoj slici prolazimo kroz polje od 6 elemenata. Zanima nas nalazi li se dvojka u polju.

polje

Nakon što smo pronašli traženi element, izlazimo iz polja i pamtimo na kojem se mjestu nalazi. U slučaju da se element ne nalazi u polju, možemo kao mjesto na kojem se nalazi uzeti neki negativan broj. Dakle, u ovom slučaju bi pamtili broj 4, jer se dvojka nalazi na četvrtom mjestu u polju.

Pogledajmo sada pseudokod ovog algoritma: PRETRAZIVANJE(A, n)
  1. for i < 1 to length(A)
  2.       do if A[i] = n
  3.             then return i
  4. return -1

Vidimo da ovaj algoritam kao parametre prima polje A i element n koji tražimo. Možemo primjetiti da izvršenje funkcije PRETRAZIVANJE prestaje onda kada nađemo traženi element. A ako se taj element ne nalazi u polju, završava cijela for-petlja i izvršava se 4. korak.

Primjetimo još da je, u najgorem slučaju (tj. kada se traženi element ne nalazi u polju), potrebno reda veličine n koraka za izvršenje ovog algoritma.