No creo que sea busqueda binaria porque no está ordenado el array. Seguí pensando y se me ocurrio lo siguiente:
int max(int a, int b){
return (a>b)? a:b;
}
int encuentraPosicion2(int v[], int p, int i, int j){
int result = -1;
int m = (i+j)/2;
if(i==j && p==v[ i ]){
result=i;
}else if(p==v[m]){
result=m;
}else{
result=max(encuentraPosicion2(v, p, i, m),encuentraPosicion2(v, p, m, j));
}
return result;
}
pero sigue sin funcionar, alguna ayuda??