Segundo parcial,algunas dudas ejercicio2

Segundo parcial,algunas dudas ejercicio2

de Usuario eliminado -
Número de respuestas: 12
Hola,tengo dos dudas importantes:
1)
Al rato que salí del parcial,me di cuenta de que en la parte b del EJERCICIO 2,en el Promover,al tener un cabezal no trate el caso en que el elemento a promover fuera alguno de los de mi cabezal,primero o último digamos.

Seguramente eso me quite todos los puntos de la implementación de PROMOVER,pero,me quita los puntos de las demas implementaciones de la parte b?
Porque lo otro lo hice y creo esta bien :S.

2)
Mi definición del tipo en modula 2,de la parte (a),era un cabezal a modo de dos colas,una de normales y otra de urgentes.
Pero ademas le puse doble enlace,porque me quedaba mas comodo al momento de promover,y seguia siendo los procedimientos pedidos por la letra en O(1).
Comentarios decian que no era necesario el doble enlace,pero a mi me resulto útil y repito,lo que se pedia me resulto de O(1).

Esta mal el ejercicio por poner doble enlace?

Gracias y agradesco si algun profesor del INCO me puede contestar.
En respuesta a Usuario eliminado

Re: Segundo parcial,algunas dudas ejercicio2

de Matias Damian Mansilla Scala -
Pero no creo que te vayan a poner todo mal, este es uno de los errores que se pueden tener en este tipo de ejercicios, pero no quiere decir que no te valoren todo lo demas que hiciste, que al parecer si mi criterio es correcto, estaría bien.
Yo no me avive de usar una lista doblemente encadenada, lo cual ahora que lo pienso era mejor, igualmente recorria para eliminar el de la lista de normales desde el elemento anterior al que tendría que eliminar y tenía que analizar el primer elemento por separado.
Me fui de tema al final pero en si me parece que no da para que te hagas tanta cabeza, ojala los profesores piensen lo mismo que yo.
Saludos


En respuesta a Usuario eliminado

Re: Segundo parcial,algunas dudas ejercicio2

de Lorena Etcheverry -
Hola Maximiliano:

lo que dice Matias es correcto.

En la parte b, en la implementación, lo importante es que la estructura de datos que definiste garantice O(1) para las operaciones que lo requerían y que las implementaciones la utilicen adecuadamente. Además de eso, evaluaremos cada una de las operaciones que te pedimos y cada una se corrige por separado. Si tenés mal algún caso de borde en Promover no vas a tener todos los puntos que se le asignen a Promover, pero no vale todos los puntos de la parte b.

Por otro lado, si tu implementación del TAD garantiza el orden de ejecución mencionado en peor caso, se considerará como una implementación válida (puede ser simple, o doblemente encadenada)
slds
Lorena
En respuesta a Lorena Etcheverry

Re: Segundo parcial,algunas dudas ejercicio2

de Maria Elena Olivera Machado -

Hola, una consulta...

en la parte c) de este ejercicio.... que pedia el orden de ejecucion en el peor caso para PromoverAvion, era O(n+1) , no? , siendo n la cantidad de aviones 'normales' y la constante 1 (uno), el tiempo de ejecucion para insertar el avion en 'urgentes'; ¿Era así?

O simplemente era O( n) ?

Desde ya muchas gracias!!

Saludos!

En respuesta a Maria Elena Olivera Machado

Re: Segundo parcial,algunas dudas ejercicio2

de Alexis Alfonso -
Te quedás con el orden del monomio de mayor orden. O(n + 1) = O( n )
En respuesta a Usuario eliminado

Re: Segundo parcial,algunas dudas ejercicio2

de Usuario eliminado -
Yo hice 2 colas doblemente encadenadas igual que vos

Creo que tengo el mismo problema que vos, cuando entregué el parcial y bajé los 3 escalones de la salida sentí un murmuro al oído que me decía "casos bordes! casos bordes!". Lo que claro, a diferencia de vos yo utilicé celda dummy entonces mi problema era al quitar el elemento de una cola si éste fuese el último. Con el caso del primer elemento no tuve problema. Creo, todavía no me puse a digerir.

No creo que esta clase de problema sea algo super grave, ya que compilar en papel no es tan fácil. El concepto es lo que hay que tener bien.
En respuesta a Usuario eliminado

Re: Segundo parcial,algunas dudas ejercicio2

de Marco Centurion Virdo -
Pero la ....! Ahora lo decís y me acabo de dar cuenta que tuve un error estúpido en ese!
Yo use en el cabezal un puntero al ultimo elemento para que la inserción fuera O(1), pero en promover no actualicé el ultimo...lo peor es que lo tenía presente en la cabeza pero no lo escribí XD. Igual creo que todo lo demás lo tengo bien, mi implementación garantiza O(1) de tiempo de ejecución en el peor caso para los procedimientos pedidos, así que ta, 60 no me saco ni a palos por ese error.
Y la parte c) era O(n ), y recién hace un rato me di cuenta que añadí algo que en realidad no es del todo correcto, ya que puse que igualmente el tiempo de ejecución dependería del algoritmo de búsqueda que utilice,teniendo en mi cabeza una búsqueda dicotómica, pero ahora me acuerdo que la lista no estaba ordenada, por lo que el tiempo de ejecución de la mayoría de los algoritmos de búsqueda que se puedan implementar son al menos O(n ), por lo que he leído hasta ahora.
En respuesta a Marco Centurion Virdo

Re: Segundo parcial,algunas dudas ejercicio2

de Usuario eliminado -
Si utilizaste colas doblemente encadenadas, solo hay que actualizar el último si este es el promovido, ese fue el caso borde que me comí. Pero si la lógica de tu algoritmo es válida, entonces nos sacarían algunos puntos por el error pero lejos de tener mal el ejercicio por completo.

Algo poco visto pero que pudo haber ayudado hubiese sido utilizar doble celda dummy, una en el último y otra en el primero, de cada cola, para evitar el caso borde de último elemento en promover. Lo que si habría que hacer algo para marcar cuando la cola es vacía y otros detalles de esta idea, pero debería andar lujo.