Problema Urgente, complicado? e importante

A ver la cosa es la siguiente: salgo hoy de la reclamacion del examen de Metodologia y Tecnologia de la Programacion 2 y suspendo por el siguiente problema donde tengo un 0 de 10:

AlgoritmoMaxElemTabla (tabla T, indice P, indice U){
Si P=U return P
else {
M=P+U/2 //indice medio
izq = AlgoritmoMaxElemTabla (tabla T, indice P, indice M)
der = AlgoritmoMaxElemTabla (tabla T, indice M+1, indice U)
Si T[izq]>T[der] return izq, else return der
}

Vamos que de forma recursiva y partiendo la tabla por la mitad el algoritmo encuentra el elemento mas grande de la tabla

Escribir la recursion para el caso general (N=nº elementos=2^k) y resolver la recurrencia

----------------------------------------------------------------------------

Mi planteamiento de resolucion:

Al ir partiendo la tabla en 2 cuando N=2^k podria plantearme el problema como un arbol binario, donde qal principio tengo todos los elementos en un bloque, luego en 2, luego en 4, etc hasta que los tengo en N bloques. Una vez aqui voy a comparar cada uno de los nodos con su hermano, de modo que al final logicamente voy a tener N/2 comparaciones en el ultimo nivel del arbol. Tomando esto como base, se que las comparaciones que voy a tener que hacer son las de este ultimo nivel (N/2) mas las de un nivel menos (que este nivel va a tener N/2 elementos, es decir, N/4 comparaciones), mas las de un nivel menos, mas las de uno menos... asi hasta llegar al nivel inmediatamente inferior a la raíz. Con esto he tenido la recursividad de la forma N/2 + T(N/2). He resuelto esta correctamente segun lo aprendido en clase y he obtenido el resultado correcto, N-1 comparaciones.



El planteamiento del corrector:

Al principio vas a hacer 1 sola comparacion para cuando tienes el numero maximo de cada una de las 2 mitades. Antes de esto habras sacado estos dos máximos con 2 comparaciones (comparar entre si los dos maximos de cada una de las dos subtablas... y asi sucesivamente). El desarrollo de su recurrencia da el mismo resultado que la mia, N-1 comparaciones

Es decir, EXACTAMENTE LO MISMO QUE LO QUE YO PROPONGO PERO PLANTEADO AL REVES

Y nada, un 0

Si estoy diciendo una tonteria que alguien me explique por que por favor porque el corrector se niega a darme una explicacion de porqué mi planteamiento es tan disparatado. Si realmente lo es yo no lucho mas pero si es normal me pongo a lo Erin Brockovich
creo que leí en casos de estos que siempre puedes reclamar, aun asi andate con mucho ojo que si lo haces y es posible que tengas al mismo profesor algun curso mas alante este andara picadisimo contigo... seguro que hay alguien que te puede informar mejor que yo (xq yo de ir a las revisiones y quejarme directamente al profesor no salgo... xD)
La tabla esta ordenada de alguna forma?
No estará el problema en comparar con un arbol binario? Por lo que te entiendo, es como si dijeras que en el nodo raiz del arbol aparece la tabla completa que luego se repite en dos mitades en los dos nodos hijos de la raíz, y así sucesivamente. Luego, cuando deshaces el camino hacia arriba, cada padre contiene el máximo de lsus dos hijos. O sea, eliminas los pedazos de tabla de cada nodo sustituyendolos por un único valor. Es un arbol binario rarísimo...

Puede que el profesor leyera "arbol binario" en tu solución y no siguiera leyendo. Ya sabes como son... [uzi]
Yo hice ese examen y lo plantee como si se tratase de un MergeSort cualquiera, es decir la ecuación de recurrencia sería

T(N) = 1 + ceiling (N/2) + floor (N/2)

Con lo que te quedaría:

T(N) = 1 + 2 * (N/2)

Y resolviendo sí que sale N - 1, pero ten en cuenta que para nuestros profesores lo importante es el planteamiento y como no lo hagas EXACTAMENTE igual que en clase, te cascan el cero (y te lo digo por experiencia con esta asignatura).

Saludetes compi!!!
Ya se que es un planteamiento muy raro :) Ayer hice un dibujo para explicarselo a un amigo, aqui va
Imagen
Que alguien me diga si lo que propongo es una incoherencia o si hay derecho a que te casquen un 0 con un planteamiento en el fondo tan parecido al del profesor

Si, lo que le pasaba era justo eso que el tio leia arbol binario y me decia esto de donde te lo has inventao esto es una tonteria y no seguia leyendo a ver si lo que decia era razonable o no, yo intentaba explicarselo pero el en plan que no queria oirme. Y luego me decia que esa formula de recurrencia me la habia inventado, que por el como si pusiera un coseno de x, por ejemplo, y que si me daba la solucion era pura casualidad.

PD: Saludos compi, tienes nombre? que a lo mejor nos conocemos y todo y estamos aki dando palos de ciego
6 respuestas