Autor
|
Tema: Ayuda entender Divide y Venceras (Leído 2,836 veces)
|
fla2727
Desconectado
Mensajes: 4
|
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
Mensajes: 4
|
Nadie?...
|
|
|
En línea
|
|
|
|
m0rf
Desconectado
Mensajes: 828
BACK!
|
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
Mensajes: 4
|
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??
|
|
« Última modificación: 17 Noviembre 2012, 20:31 pm por fla2727 »
|
En línea
|
|
|
|
m0rf
Desconectado
Mensajes: 828
BACK!
|
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
Mensajes: 4
|
Ya está solucionado. Gracias por participar
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda para entender netbeans
Java
|
Electronik
|
3
|
6,046
|
15 Octubre 2009, 00:01 am
por Electronik
|
|
|
alguien me ayuda entender el C++??
Programación C/C++
|
holamega12
|
2
|
2,050
|
30 Noviembre 2012, 18:43 pm
por rir3760
|
|
|
algoritmos divide y venceras
Programación C/C++
|
m@o_614
|
3
|
4,121
|
16 Septiembre 2013, 21:29 pm
por ecfisa
|
|
|
ayuda con algoritmo divide and conquer
Java
|
++c
|
0
|
1,529
|
29 Abril 2015, 00:47 am
por ++c
|
|
|
algoritmo kadane con divide y venceras?
Java
|
Tordur
|
1
|
2,765
|
21 Octubre 2018, 16:42 pm
por srWhiteSkull
|
|