Tengo que implementar en Java un algoritmo de Divide y venceras, sobre el siguiente ejercicio:
Nos dan una matriz de n filas y m columnas, mas un vector de tamaño n (igual al numero de filas de la matriz). Cada fila de la matriz tiene una serie de numeros enteros ordenados de manera decreciente
Ejemplo: 90 | 80 | 70 | 60 | 50
Lo que tenemos que hacer es buscar el valor que haya en el vector en la posicion v[i] en la fila[i] de la matriz. Y devolver la primera fila donde esto ocurra.
En el ejercicio las tres primeras filas, esto no ocurre, es decir, la primera coincidencia sucede en la 4ª fila y 4ª posicion en el vector, que seria fila[3] y vector[3].
Tenemos que usar un algoritmo de divide y venceras, asi que como las filas estan ordenadas, yo lo que he pensado es la fila la divido en dos, y miro si la mitad es mayor o menor que el valor que estoy buscando, y si la mitad es mayor, descarto la parte izquierda y vuelvo a dividir y si la mitad es menor, descarto la parte derecha y vuelvo a dividir, asi hasta que de con el valor.
El problema es que llevo muchooo sin tocar java y la teoria la llevo bien, pero a la hora de implementar el codigo nose porque BlueJ me lanza este error .class Expected
Código:
Dentro del metodo mDyV seria donde lo llamaria a el mismo de manera recursiva para ir divividiendo las mitades.import java.util.*; import java.io.*; public class dyv { static void mDyV (int m[][],int []v, int inicio, int fin) { } public static void main(String[] args) { int m[][] = {{8,7,6,5,4,3,2,1},{16,14,12,10,8,6,4,2},{90,80,70,60,50,40,30,20},{20,15,11,9,7,3,2,1},{22,20,11,10,8,6,5,4},{17,16,15,13,9,7,3,1},{64,32,16,8,4,2,1,0},{12,10,8,6,5,4,3,2},{90,72,64,56,48,40,32,24},{30,27,24,21,18,15,12,9}}; int v[] = {9,13,24,15,22,1,8,2,72,18}; int inicio=0; int fin=m.length; int resultado=this.mDyV(m[][],v[],inicio,fin); } }
¿Porque me da el error a la hora de compilar con BlueJ de .class Expected ?
Gracias y saludos.