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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda entender Divide y Venceras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda entender Divide y Venceras  (Leído 2,865 veces)
fla2727

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ayuda entender Divide y Venceras
« en: 15 Noviembre 2012, 16:02 pm »

Buenas, nos han explicado en programacion (en C) la tecnica divide y venceras, pero no me ha quedado claro como se haria este ejemplo, a la hora de combinar soluciones. A ver si alguien podría explicarmelo.

Ejemplo: Un algoritmo que busque la posición de un elemento, p, entre dos posiciones i,j de un vector, v, no ordenado. En caso de que exista devolverá la posición del elemento, en caso contrario devolverá -1. Para resolver el problema mediante recursividad, considere en dividir el problema en dos partes del mismo tamaño.

Mi solucion propuesta:

int encuentraPosicion2(int v[], int p, int i, int j){
   int r = -1;
   int m = (i+j)/2;
   if(i==j && p==v){
      r=i;
   }else if(p==v[m]){
      r=m;
   }else{
      r=encuentraPosicion2(v, p, i, m);
      r=encuentraPosicion2(v, p, m, j);
   }
   return r;
}

Pero se ve que no, que no entendí bien la idea....Alguien que sepa ayudarme


En línea

fla2727

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda entender Divide y Venceras
« Respuesta #1 en: 15 Noviembre 2012, 17:01 pm »

Nadie?...


En línea

m0rf


Desconectado Desconectado

Mensajes: 828


BACK!


Ver Perfil
Re: Ayuda entender Divide y Venceras
« Respuesta #2 en: 15 Noviembre 2012, 17:16 pm »

Es una busqueda binaria?
En línea

Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?
fla2727

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda entender Divide y Venceras
« Respuesta #3 en: 17 Noviembre 2012, 20:26 pm »

No creo que sea busqueda binaria porque no está ordenado el array. Seguí pensando y se me ocurrio lo siguiente:

Código:
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??
« Última modificación: 17 Noviembre 2012, 20:31 pm por fla2727 » En línea

m0rf


Desconectado Desconectado

Mensajes: 828


BACK!


Ver Perfil
Re: Ayuda entender Divide y Venceras
« Respuesta #4 en: 18 Noviembre 2012, 19:12 pm »

Se más especifico la próxima vez, no me voy a poner a preguntar para ayudarte.

"Posteo un codigo, arreglamelo!"
En línea

Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?
fla2727

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda entender Divide y Venceras
« Respuesta #5 en: 18 Noviembre 2012, 19:19 pm »

Ya está solucionado. Gracias por participar ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda para entender netbeans
Java
Electronik 3 6,069 Último mensaje 15 Octubre 2009, 00:01 am
por Electronik
alguien me ayuda entender el C++??
Programación C/C++
holamega12 2 2,076 Último mensaje 30 Noviembre 2012, 18:43 pm
por rir3760
algoritmos divide y venceras
Programación C/C++
m@o_614 3 4,153 Último mensaje 16 Septiembre 2013, 21:29 pm
por ecfisa
ayuda con algoritmo divide and conquer
Java
++c 0 1,541 Último mensaje 29 Abril 2015, 00:47 am
por ++c
algoritmo kadane con divide y venceras?
Java
Tordur 1 2,786 Último mensaje 21 Octubre 2018, 16:42 pm
por srWhiteSkull
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines