Implementazioni di algoritmi/Ricerca dicotomica: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Aggiunta Ricerca Dicotomica java ricordavi |
|||
Riga 113:
return -1; //non l'ha trovato
}
</source>
===Implementazione in [[Java]] versione ricorsiva===
<source lang=java>
/*
* @param lista l'array ordinato su cui effettuare la ricerca
* @param key il valore da cercare
* @return la posizione del valore trovato, -1 se non l'ha trovato
*/
public int ricercaBinariaRicorsiva(int[] lista, int key, int low, int high)
{
int mid;
mid = (low + high)/2;
if ((mid < low)||(high<0))
{
return -1; //Valore non trovato
}
else if (find < lista[mid])
{
return ricercaBinariaRicorsiva(lista, key, low, mid-1);
}
else if (find > lista[mid])
{
return ricercaBinariaRicorsiva(lista, key, mid+1, high);
}
else
{
return mid; //Valore trovato nella posizione mid
}
}
</source>
|