Tipi di algoritmi di ricerca
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 IRS. Altri algoritmi di ricerca esplorano uno spazio virtuale, come quelli che cercano le migliori mosse di scacchi. Sebbene i programmatori possano scegliere tra numerosi tipi di ricerca, selezionano l'algoritmo che meglio si adatta alle dimensioni e alla struttura del database per fornire un'esperienza di facile utilizzo.
Ricerca lineare
La ricerca lineare è l'algoritmo preferito per gli elenchi brevi, perché è semplice e richiede un codice minimo per essere implementato. L'algoritmo di ricerca lineare esamina la prima voce dell'elenco per vedere se la stai cercando e, in tal caso, hai finito. In caso contrario, esamina l'elemento successivo e prosegue attraverso ciascuna voce nell'elenco.
Ricerca binaria
La ricerca binaria è un algoritmo popolare per database di grandi dimensioni con record ordinati per chiave numerica. Esempi di candidati includono il database IRS con codice di previdenza sociale e i record DMV con codice di patente di guida. L'algoritmo inizia al centro del database:se il numero di destinazione è maggiore del numero medio, 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, dimezzando 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 ad albero
Una ricerca ad albero funziona solo se i dati rientrano in 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 fino a quando non hai un albero. Un esempio è il gioco degli scacchi. La posizione attuale della scheda è la radice. Le mosse legali da questa posizione rappresentano un gradino più in basso dell'albero, e così via fino a quando il giocatore non trova la posizione sul tabellone che lo lascia nella posizione migliore.
Algoritmo genetico
La ricerca di un algoritmo genetico è 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 le 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.