Typer søkealgoritmer

Mor og far kysser jente på teppet

En familie bruker en bærbar datamaskin.

Bildekreditt: altrendo images/Stockbyte/Getty Images

Søkealgoritmer utgjør en viktig del av mange programmer. Noen søk innebærer å lete etter en oppføring i en database, for eksempel å slå opp posten din i IRS-databasen. Andre søkealgoritmer tråler gjennom et virtuelt rom, for eksempel de som jakter på de beste sjakktrekkene. Selv om programmerere kan velge mellom mange søketyper, velger de algoritmen som passer best til størrelsen og strukturen til databasen for å gi en brukervennlig opplevelse.

Lineært søk

Det lineære søket er den foretrukne algoritmen for korte lister, fordi det er enkelt og krever minimalt med kode for å implementere. Den lineære søkealgoritmen ser på det første listeelementet for å se om du søker etter det, og i så fall er du ferdig. Hvis ikke, ser den på neste element og videre gjennom hver oppføring i listen.

Dagens video

Binært søk

Binært søk er en populær algoritme for store databaser med poster sortert etter numerisk nøkkel. Eksempelkandidater inkluderer IRS-databasen tastet inn med personnummer og DMV-postene tastet inn med førerkortnumre. Algoritmen starter i midten av databasen -- hvis målnummeret ditt er større enn det midterste tallet, vil søket fortsette med den øvre halvdelen av databasen. Hvis målnummeret ditt er mindre enn det midterste tallet, fortsetter søket med den nedre halvdelen av databasen. Den fortsetter å gjenta denne prosessen, og halverer databasen hver gang til den finner posten. Dette søket er mer komplisert enn det lineære søket, men for store databaser er det mye raskere enn et lineært søk.

Tresøk

Et tresøk fungerer bare hvis dataene passer inn i en trestruktur. Databasen starter ved en rot som går til noen få elementer, som hver går til noen flere elementer og så videre til du har et tre. Et eksempel er sjakkspillet. Den nåværende styreposisjonen er roten. De lovlige trekkene fra denne posisjonen representerer ett trinn ned i treet, og så videre til spilleren finner brettposisjonen som gir ham den beste posisjonen.

Genetisk algoritme

Et genetisk algoritmesøk er en av teknikkene bak kunstig intelligens. Den søker etter en "optimal løsning" uttrykt som en datastreng - for eksempel listen over interne dimensjoner til en jetmotor som gir maksimal skyvekraft. Søket starter med en tilfeldig populasjon av strenger og tester hver enkelt, beholder de beste og avler dem for å få neste generasjon. Programmet fortsetter å gjenta denne prosessen til det kommer til en optimal løsningsstreng.