codice:
	public static int cercaIndice( int[] a, int sx, int dx )
	{
		int centro = (sx+dx) / 2;
		
		System.out.println( "Centro vale: " + centro );
		
		if( a[(centro+1) % a.length]  > a[centro] && a[(centro-1)%a.length]  > a[centro] )
		{
			System.out.println("Trovato l'indice in posizione " + centro);
			return centro;
		}		
		else
			if( a[centro] > a[dx] )
				cercaIndice( a, centro+1, dx);
			else
				cercaIndice( a, sx, centro-1);
		
		return centro;
	}
 
Ok funziona, a parte quell'ultimo return centro che l'ho messo per far star zitto il complilatore, altrimenti mi dice che la funzione deve ritornare u n valore intero ( se provi ad eseguirla devi far fede solo alla stampa dentro l'if ).
La cosa che non capisco ancora e'..che relazione c'e' quindi tra l'elemento che esamino e sx e dx ?