Tipi di algoritmi di ricerca

Madre e padre che baciano la ragazza sul tappeto

Una famiglia sta usando un laptop.

Credito immagine: altrendo immagini/Stockbyte/Getty Images

Gli algoritmi di ricerca costituiscono una parte importante di molti programmi. Alcune ricerche implicano la ricerca di una voce in un database, ad esempio la ricerca del record nel database dell'IRS. Altri algoritmi di ricerca percorrono uno spazio virtuale, come quelli alla ricerca delle migliori mosse di scacchi. Sebbene i programmatori possano scegliere tra numerosi tipi di ricerca, selezionano l'algoritmo che meglio corrisponde alle dimensioni e alla struttura del database per fornire un'esperienza user-friendly.

Ricerca lineare

La ricerca lineare è l'algoritmo di scelta per gli elenchi brevi, perché è semplice e richiede un codice minimo da implementare. L'algoritmo di ricerca lineare esamina il primo elemento dell'elenco per vedere se lo stai cercando e, in tal caso, hai finito. In caso contrario, esamina l'elemento successivo e prosegue per ogni voce dell'elenco.

Video del giorno

Ricerca binaria

La ricerca binaria è un algoritmo popolare per database di grandi dimensioni con record ordinati per chiave numerica. I candidati di esempio includono il database dell'IRS codificato dal numero di previdenza sociale e i record DMV codificati dai numeri della patente di guida. L'algoritmo inizia a metà del database: se il numero di destinazione è maggiore del numero centrale, la ricerca continuerà con la metà superiore del database. Se il numero di destinazione è inferiore al numero centrale, la ricerca continuerà con la metà inferiore del database. Continua a ripetere questo processo, tagliando a metà il database ogni volta finché non trova il record. Questa ricerca è più complicata della ricerca lineare ma per database di grandi dimensioni è molto più veloce di una ricerca lineare.

Ricerca albero

Una ricerca ad albero funziona solo se i dati si adattano a una struttura ad albero. Il database inizia da una radice che va a pochi elementi, ognuno dei quali va a pochi altri elementi e così via finché non si dispone di un albero. Un esempio è il gioco degli scacchi. La posizione corrente sulla scacchiera è la radice. Le mosse legali da questa posizione rappresentano un passo giù dall'albero, e così via fino a quando il giocatore trova la posizione sul tabellone che lo lascia nella posizione migliore.

Algoritmo genetico

Una ricerca di algoritmi genetici è una delle tecniche alla base dell'intelligenza artificiale. Cerca una "soluzione ottimale" espressa come una stringa di dati, come l'elenco delle dimensioni interne di un motore a reazione che fornisce la massima spinta. La ricerca inizia con una popolazione casuale di stringhe e testa ciascuna, mantenendo le migliori e allevandole per ottenere la generazione successiva. Il programma continua a ripetere questo processo finché non arriva a una stringa di soluzione ottimale.