codice:
int ricercaAdattiva(int v[], int n, int x){
	int primo = 0;
	int ultimo = n - 1;
	
    while(ultimo > primo){
		int m = (ultimo + primo) / 2 + 1;
      	int prox = primo + ((ultimo - primo) * ((x - v[primo]) / (v[ultimo] - v[primo])));
		if ((v[prox] > x) && (prox - primo < m)){
			ultimo = prox - 1;
			//prox = (primo + ultimo) / 2;
		}
		else if((v[prox] < x) && (ultimo - prox) < m) {
			primo = prox + 1;
			//prox = (primo + ultimo) / 2;
		}
		else if(v[prox] < x) primo = m + 1;
		else if(v[prox] > x) ultimo = m - 1;
		else primo = m;
    }
	
	if(v[primo] == x) return primo;
	else if(v[ultimo] == x) return ultimo;
	else return -1;
}
Uff... non riesco a corregere il codice.... Su google non trovo nulla forse ha un altro nome questa tipo di ricerca???
Sarebbe una ricerca mezza interpolata e mezza binaria (implementate tutte e due correttamente ma nel momento di metterle insieme... il casino) ....

Grazie per l'aiuto..