Strukture podataka pretrage

U računarstvu, pretraga strukture podataka je svaka struktura podataka koja dozvoljava povraćaj specifičnih elemenata iz skupa elemenata, kao što je baza podataka.

Najjednostavnija, najopštija, a najmanje efikasna pretraga struktura je samo neuređena sekvenciona lista svih elemenata. Lociranje željene stavke u takvoj listi, sa metodom linearne pretrage, neminovno zahteva niz operacija proporcionalnih broju n stavki, u najgorem mogućem slučaju kao i u prosečnom slučaju. Korisne pretrage strukture podataka omogućavaju bržu pretragu; međutim, oni su ograničeni na upite neke specifične vrste. Štaviše, pošto troškovi izgradnje takvih struktura su barem proporcionalni N, oni će se isplatiti samo ako se nekoliko upita treba izvršiti na istoj bazi podataka (ili na bazi podataka koja se malo menja između upita).

Statičke pretrage struktura podataka su dizajnirane za odgovaranje mnogih upita ka fiksnoj bazi podataka; Dinamičke strukture takođe omogućavaju umetanje, brisanje ili izmenu stavki između uzastopnih upita. U dinamičnom slučaju, moraju se takođe uzeti u obzir troškovi popravljanja struktura pretrage za odgovarajuće promene u bazi podataka.

Klasifikacija uredi

Najjednostavnija vrsta upita je da se pronađe zapis koji ima specifičnu oblast (tj. ključ) jednak određenoj vrednosti V. Druge uobičajene vrste upita su „pronađi stavku sa najmanjom (ili najvećom) vrednosti ključa“, „naći stavku sa najvećom vrednosti ključa koja ne prelazi V", „naći sve stavke sa vrednostima ključa između navedenih granica V<sub>min</sub> and V<sub>maks</sub>".

U nekim bazama ključne vrednosti mogu biti tačke u nekim dimenzionim prostorima. Na primer, ključ može da bude geografski položaj(geografska širina i geografska dužina) na Zemlji. U tom slučaju, najčešći tipovi upita su nađi zapis sa vrednosti ključa najbližoj datoj tački V", ili „nađi sve stavke čiji ključ leži u određenom rastojanju od V", ili „nađi sve stavke unutar određenog prostora R ".

Specijalni slučaj su istovremeni opseg upita sa dva ili više jednostavnih ključeva, kao što su „nađi sve podatke o zaposlenima sa platom između 50.000 i 100.000 i ѕaposlenim između 1995 i 2007".

Pojedinačni uređeni ključevi uredi

Pronalaženje najmanjeg elementa uredi

Asimptotska analiza najgoreg mogućeg scenarija uredi

U ovoj tablici, asimptotska notacija O(F(N)) znači „ne prelazi neki fiksni množilac od F(N) u najgorem mogućem scenariju."

Umetni Obriši Indeks Pretraga Nađi maksimum-minimum Zauzeće prostora
Nesortirani niz O(n) O(n) O(1) O(n) O(n) O(n)
Sortirani niz O(n) O(n) O(1) O(log n) O(1) O(n)
Nesortirana povezana lista O(1)* O(1)* O(n) O(n) O(n) O(n)
Sortirana povezana lista O(1)* O(1)* O(n) O(n) O(n) O(n)
Samobalansirajuće binarno stablo pretrage O(log n) O(log n) N/A O(log n) O(log n) O(n)
Hip O(log n) O(log n)** N/A O(n) O(1) O(n)
Heš tablice O(1) O(1) N/A O(1) O(n) O(n)


Ova tablica je samo približna; za svaku strukturu podataka postoje posebne situacije i varijante koje mogu dovesti do različitih rezultata. Takođe, dve ili više strukture podataka mogu se kombinovati da se dobiju niži troškovi.

Reference uredi