Mis on otsingu andmestruktuur?

Arvutiandmete loendist üksuse leidmine võib olla keeruline ja aeganõudev, mistõttu loodi otsinguandmete struktuur. Otsingu andmestruktuur on mis tahes andmestruktuur, mida saab automaatselt otsida, olgu selleks siis suur andmebaas või väike loend. Otsingustruktuure on kahte peamist tüüpi, staatilised ja dünaamilised; staatiline ei saa muutuda, samas kui dünaamiline võimaldab muuta. Otsimine võib olla kulukas toiming, seetõttu on enamik andmestruktuure optimeeritud, et aidata otsingufunktsioonil andmeid leida. Üksuste kiire asukoha leidmine on selle struktuuri ilmselge eelis, kuid kuna see on nii kulukas, on otsingufunktsiooni kõige parem kasutada suurte struktuuride puhul.

Erinevalt enamikust teistest andmestruktuuridest võib otsinguandmete struktuur olla mis tahes tüüpi andmestruktuur. Selle struktuuri domineeriv omadus on see, et kasutajad saavad struktuurist päringu kaudu otsida; struktuuris peab loendis olema ka vähemalt kaks üksust, kuigi enamikus struktuurides on kümneid, sadu või tuhandeid üksusi. See tähendab, et andmebaas, loend, string või kahendpuu võib kvalifitseeruda otsingustruktuuriks.

Otsinguandmete struktuuri saab jagada kahte kategooriasse: staatiline ja dünaamiline. Staatiline versioon on muutumatu ja kasutajad saavad otsida ainult loendist. Seda struktuuri on palju lihtsam hooldada, kuna kasutajad ei pea muretsema järjehoidjasüsteemi muutmise pärast ja otsimine on tavaliselt lihtsam. Dünaamilised struktuurid võimaldavad kasutajatel üksusi muuta, kas neid muutes või kustutades, kuid neid on raskem käivitada. Üksused võivad muutuda nii sageli, et iga üksuse asukoha jälgimiseks peab olema järjehoidjasüsteem.

Andmestruktuurist otsimine võib olla kulukas, mis tähendab, et see võib arvutil kuluda palju aega ja vaeva. Näiteks kui otsitakse andmestruktuurist lineaarselt ja üksus asub allosas, siis peab päring läbi vaatama iga üksuse, kuni leiab õige. Arvuti abistamiseks optimeeritakse enamik otsingu andmestruktuure, kasutades järjehoidjasüsteemi ja jagades struktuuri osadeks, et otsingupäring saaks vaadata kogu struktuuri asemel õiget jaotist.

Otsinguandmete struktuuri kasutamise ilmselge eelis seisneb selles, et kasutajad saavad otsida kirjeid seni, kuni nad leiavad vajaliku teabe. Samal ajal, kuna päring on nii kulukas, pole see väiksemate andmestruktuuride puhul nii kasulik. Kui andmestruktuur on väike ja inimene saab seda hõlpsasti otsida, võib arvutil kirje leidmiseks kuluda rohkem aega kui siis, kui kasutaja teeks otsingu käsitsi.