Typer af søgealgoritmer

Mor og far kysser pige på tæppe

En familie bruger en bærbar computer.

Billedkredit: altrendo billeder/Stockbyte/Getty Images

Søgealgoritmer udgør en vigtig del af mange programmer. Nogle søgninger involverer at lede efter en post i en database, såsom at slå din post op i IRS-databasen. Andre søgealgoritmer trawler gennem et virtuelt rum, såsom dem, der jagter efter de bedste skaktræk. Selvom programmører kan vælge mellem adskillige søgetyper, vælger de den algoritme, der bedst matcher databasens størrelse og struktur for at give en brugervenlig oplevelse.

Lineær søgning

Den lineære søgning er den foretrukne algoritme for korte lister, fordi den er enkel og kræver minimal kode at implementere. Den lineære søgealgoritme ser på det første listeelement for at se, om du søger efter det, og i så fald er du færdig. Hvis ikke, ser den på det næste punkt og videre gennem hver post på listen.

Dagens video

Binær søgning

Binær søgning er en populær algoritme til store databaser med poster sorteret efter numerisk nøgle. Eksempler på kandidater inkluderer IRS-databasen indtastet efter cpr-nummer og DMV-posterne tastet af kørekortnumre. Algoritmen starter i midten af ​​databasen -- hvis dit målnummer er større end det midterste tal, vil søgningen fortsætte med den øverste halvdel af databasen. Hvis dit målnummer er mindre end det midterste tal, vil søgningen fortsætte med den nederste halvdel af databasen. Den bliver ved med at gentage denne proces og skærer databasen i halve hver gang, indtil den finder posten. Denne søgning er mere kompliceret end den lineære søgning, men for store databaser er den meget hurtigere end en lineær søgning.

Træsøgning

En træsøgning virker kun, hvis dataene passer ind i en træstruktur. Databasen starter ved en rod, der går til et par elementer, som hver går til et par flere elementer og så videre, indtil du har et træ. Et eksempel er spillet skak. Den nuværende bestyrelsesposition er roden. De lovlige træk fra denne position repræsenterer et trin ned i træet, og så videre, indtil spilleren finder den brætposition, der efterlader ham i den bedste position.

Genetisk algoritme

En genetisk algoritmesøgning er en af ​​teknikkerne bag kunstig intelligens. Den søger efter en "optimal løsning" udtrykt som en streng af data — såsom listen over interne dimensioner af en jetmotor, der giver maksimal fremdrift. Søgningen starter med en tilfældig population af strenge og tester hver enkelt, beholder de bedste og opdrætter dem for at få den næste generation. Programmet bliver ved med at gentage denne proces, indtil den når frem til en optimal løsningsstreng.