Interpolation search: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Annullata la modifica 117761343 di 109.52.85.207 (discussione) se è il caso medio come fa a essere O-grande? Etichetta: Annulla |
Migliorato la pagina |
||
(2 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1:
{{Algoritmo
|classe = [[Algoritmo di ricerca]]
|immagine =Interpolation sort.gif
|didascalia =Ricerca del numero 24 grazie all'algoritmo
|struttura dati = [[Array]] ordinato
|tempo = <math>O(n)</math>
|tempo migliore = <math>O(1)</math>
|tempo medio = <math>log(log(
|spazio =
|ottimale =
}}
L{{'}}'''interpolation search''' è un [[algoritmo di ricerca]] di un dato valore chiave in un [[array]] ordinato tramite gli stessi valori delle chiavi. È il metodo corrispondente alla ricerca di un particolare termine all'interno di un [[dizionario]] o di un nominativo all'interno di un [[elenco telefonico]].
L'interpolation search può essere considerato come una generalizzazione della [[ricerca dicotomica]]; quest'ultima, infatti, segue lo stesso procedimento, ma non si basa sui valori degli estremi, bensì taglia il ''search space'' sempre a metà.
In media, il costo dell'algoritmo è di <math>log(log(
== Esempio di implementazione ==
Il seguente codice [[C++]] è un esempio di semplice implementazione.
<syntaxhighlight lang="cpp" line="1">
template <typename T>
int interpolation_search(T arr[], int size, T key)
Riga 53:
== Voci correlate ==
* [[Ricerca sequenziale]]
* [[Ricerca dicotomica]]
* [[Hash table]]
== Collegamenti esterni ==
* {{cita web|http://www.dcc.uchile.cl/~rbaeza/handbook/algs/3/322.srch.p.html|Interpolation search|lingua=en}}
* {{cita web|http://www.nist.gov/dads/HTML/interpolationSearch.html|National Institute of Standards and Technology|lingua=en}}
* {{cita web|http://www.cs.technion.ac.il/~itai/publications/Algorithms/p550-perl.pdf|Interpolation Search - A Log LogN Search|lingua=en}}
{{
[[Categoria:Algoritmi di ricerca]]
|