elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ayuda con algoritmo divide and conquer
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con algoritmo divide and conquer  (Leído 1,524 veces)
++c

Desconectado Desconectado

Mensajes: 29


Ver Perfil
ayuda con algoritmo divide and conquer
« en: 29 Abril 2015, 00:47 am »

Hola amigos,

me he dispuesto a resolver algoritmos de este tipo, concretamente comparar dos vectores y mostrar en que posición difiere un dato el uno del otro.

Primero me he dispuesto a comparar si los dos son iguales o no con el siguiente código:

Código
  1.  
  2.    public static boolean sonIgualesDyV(int[] a, int[] b, int ini, int fin) {
  3.        if(fin - ini <= 1) {
  4.            if((a[ini] != b[ini]) || (a[fin] != b[fin])) {
  5.                return false;
  6.            } else {
  7.                return true;
  8.            }
  9.        } else {
  10.            int medio = (ini + fin)/2;
  11.            boolean resultadoAux = sonIgualesDyV(a,b, ini, medio);
  12.            boolean resultadoAux2 = sonIgualesDyV(a, b, medio+1, fin);
  13.            return (resultadoAux && resultadoAux2);
  14.        }
  15.    }
  16.  
  17.    public static void main(String[] args) {
  18.        // TODO code application logic here
  19.  
  20.        int a[]={1,2,7,8,9,10};
  21.        int b[]={1,2,7,8,9,10};
  22.  
  23.        if (sonIgualesDyV(a,b,0, a.length-1))
  24.            System.out.println("Los vectores son iguales");
  25.         else
  26.            System.out.println("Los vectores no son iguales");
  27.    }
  28.  
  29.  

A partir de aquí y viendo que discurre la lógica implementada he querido modificarlo para devolver un entero con la posición donde difiere un dato de un vector de otro, ejemplo:

a[]={0,1,2,3,4}
b[]={0,1,2,3,6}

Ambos difieren en la posición 4 con un valor distinto por arreglo.

El problema lo tengo con las llamadas recursivas para llamarse a sí mismas y resolver el problema, antes devolvía dos resultados con un boolean(resultadoAux y resultadoAux2), ahora para devolver dos datos int no se como hacerlo... supongo que tendré que crear una condición para evaluar una llamada recursiva u otra o devolver con un arreglo los dos resultados a la llamada de la función...

Código
  1.  
  2.    public static int sonIgualesDyV(int[] a, int[] b, int ini, int fin) {
  3.        if(fin - ini <= 1) {
  4.            if((a[ini] != b[ini])){
  5.                return ini;
  6.            } else if ((a[fin] != b[fin])){
  7.                return fin;
  8.            }
  9.        } else {
  10.            int medio = (ini + fin)/2;
  11.            int resultadoAux = sonIgualesDyV(a,b, ini, medio);
  12.            int resultadoAux2 = sonIgualesDyV(a, b, medio+1, fin);
  13.  
  14.        }
  15.        return 0;
  16.    }
  17.  
  18.    public static void main(String[] args) {
  19.        // TODO code application logic here
  20.        int a[]={1,2,7,8,9,10};
  21.        int b[]={1,2,7,8,6,10};
  22.        System.out.println("Difiere en la posición: "+sonIgualesDyV(a, b, 0, a.length-1));
  23.    }
  24.  
  25.  

Saludos y muchas Gracias



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda-Command&Conquer
Juegos y Consolas
patas_air 1 1,529 Último mensaje 8 Octubre 2005, 00:17 am
por patas_air
Wikileaks se divide
Noticias
wolfbcn 1 2,222 Último mensaje 10 Noviembre 2010, 22:50 pm
por Draklit
Ayuda entender Divide y Venceras
Programación C/C++
fla2727 5 2,830 Último mensaje 18 Noviembre 2012, 19:19 pm
por fla2727
algoritmo kadane con divide y venceras?
Java
Tordur 1 2,752 Último mensaje 21 Octubre 2018, 16:42 pm
por srWhiteSkull
Instalar el mod más nuevo de third age total war divide and conquer cold north.
Juegos y Consolas
Hason 0 3,201 Último mensaje 2 Mayo 2019, 13:09 pm
por Hason
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines