Vrste algoritama pretraživanja

Majka i otac ljube djevojku na tepihu

Obitelj koristi prijenosno računalo.

Zasluga slike: altrendo slike/Stockbyte/Getty Images

Algoritmi pretraživanja važan su dio mnogih programa. Neka pretraživanja uključuju traženje unosa u bazi podataka, kao što je traženje vašeg zapisa u bazi podataka porezne uprave. Drugi algoritmi za pretraživanje provlače se kroz virtualni prostor, poput onih koji traže najbolje šahovske poteze. Iako programeri mogu birati između brojnih vrsta pretraživanja, odabiru algoritam koji najbolje odgovara veličini i strukturi baze podataka kako bi pružio korisničko iskustvo.

Linearna pretraga

Linearna pretraga je algoritam izbora za kratke liste, jer je jednostavna i zahtijeva minimalan kod za implementaciju. Algoritam linearnog pretraživanja gleda na prvu stavku popisa da vidi tražite li je i, ako jeste, gotovi ste. Ako ne, gleda sljedeću stavku i dalje kroz svaki unos na popisu.

Video dana

Binarno pretraživanje

Binarno pretraživanje popularan je algoritam za velike baze podataka sa zapisima poredanim po numeričkom ključu. Primjeri kandidata uključuju bazu podataka porezne uprave s ključem socijalnog osiguranja i DMV zapise s brojevima vozačke dozvole. Algoritam počinje od sredine baze podataka - ako je vaš ciljni broj veći od srednjeg broja, pretraživanje će se nastaviti s gornjom polovicom baze podataka. Ako je vaš ciljni broj manji od srednjeg broja, pretraživanje će se nastaviti s donjom polovicom baze podataka. Neprestano ponavlja ovaj proces, prepolovivši bazu podataka svaki put dok ne pronađe zapis. Ovo pretraživanje je kompliciranije od linearnog pretraživanja, ali za velike baze podataka mnogo je brže od linearnog pretraživanja.

Pretraga stabla

Pretraživanje stabla radi samo ako se podaci uklapaju u strukturu stabla. Baza podataka počinje od korijena koji ide do nekoliko stavki, od kojih svaka ide na još nekoliko stavki i tako dalje dok ne dobijete stablo. Jedan primjer je igra šaha. Trenutna pozicija na ploči je korijen. Pravi potezi s ove pozicije predstavljaju jedan korak niz stablo, i tako sve dok igrač ne pronađe poziciju na ploči koja ga ostavlja u najboljoj poziciji.

Genetski algoritam

Pretraživanje genetskim algoritmom jedna je od tehnika u pozadini umjetne inteligencije. Traži "optimalno rješenje" izraženo kao niz podataka — kao što je popis unutarnjih dimenzija mlaznog motora koji pruža maksimalni potisak. Potraga počinje nasumičnom populacijom nizova i testira svaki od njih, zadržavajući najbolje i uzgajajući ih kako bi dobili sljedeću generaciju. Program nastavlja ponavljati ovaj proces sve dok ne dođe do optimalnog niza rješenja.