Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 1 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Duda Algoritmos FINALES
Autor Mensaje
Heidad Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 171
Agradecimientos dados: 5
Agradecimientos: 112 en 16 posts
Registro en: Feb 2009
Mensaje: #1
Duda Algoritmos FINALES Finales y 1 más Algoritmos y Estructuras de Datos
Gente , recien estuve viendo algunos finales , y en el acceso a archivos dice:

Accesos al archivo TALARCHIVO: busqueda binaria.

y en un final ni dan espacio para arrays.

yo tenia entendido que la busqueda binaria es solo en arrays... y al no haber arrays para hacerlo... entonces que se hace?

recien vi otro , que tiene espacio para arrays y tmb dice

Accesos al archivo TALARCHIVO busqueda binaria + otra cosa.

no entiendo como se puede hacer una busqueda binaria en un .dat.

alguien sabria responder?

gracias.
17-12-2010 14:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Cacho Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Otra
-----

Mensajes: 217
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Jul 2009
Mensaje: #2
RE: Duda Algoritmos FINALES
(17-12-2010 14:43)Heidad escribió:  Gente , recien estuve viendo algunos finales , y en el acceso a archivos dice:

Accesos al archivo TALARCHIVO: busqueda binaria.

y en un final ni dan espacio para arrays.

yo tenia entendido que la busqueda binaria es solo en arrays... y al no haber arrays para hacerlo... entonces que se hace?

recien vi otro , que tiene espacio para arrays y tmb dice

Accesos al archivo TALARCHIVO busqueda binaria + otra cosa.

no entiendo como se puede hacer una busqueda binaria en un .dat.

alguien sabria responder?

gracias.
La busqueda binaria la podes hacer tanto en archivos como en arrays, mientras esten ordenados por tal campo.. es casi igual que en vectores(bah, tiene diferencias) usas dos topes, inicial y final los inicializas junto a la posicion, el tope inicial en 0 y el final en filesize(archivo)-1.. inicializas la posicion que queres tener en no se.. -1 ponele y un encontro en falso.
despues haces un while con las condiciones not encontro and Ti(tope inicial) <= tope final.
Adentro calculas el tope medio asi: TM<- (TI+TF)/2 seekeas al tope medio osea seek(archivo, TM) lees el registro y comparas si el dato que buscas es el que estaba en esa posicion (con un if), si lo es haces que te devuelta esa posicion con un pos<-filepos(archivo)-1 (cuando leiste el puntero avanzo uno por eso, tambien pudiste poner a TM) y para que termine de ciclar pones un encontro <- true.
Si no es lo que buscabas (y aca viene la importancia de que este ordenado) comparas con un if si el dato es mayor o menor al que buscabas, si encontraste en esa posicion un dato mayor cambias el tope final mas arriba asi TF<-TM-1 si encontraste un dato menor cambias el tope incial mas adelante asi TI<- TM+1

Creo que quedo medio quilombo igual =P

[Imagen: n754240885_796267_9581.jpg]
(Este mensaje fue modificado por última vez en: 17-12-2010 16:40 por Cacho.)
17-12-2010 16:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Heidad Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 171
Agradecimientos dados: 5
Agradecimientos: 112 en 16 posts
Registro en: Feb 2009
Mensaje: #3
RE: Duda Algoritmos FINALES
nono , perfecto , me imaginaba que habia un seek por ahi.

muchas gracias.
otra cosita , con respecto a ordenar una lista por 2 tipos ( primero por nro de legajo , despues por año inscripto , descendiente , ponele).

en el insertar nodo , en donde (Lista = nil o LEGAJO < lista^.info.Legajo) es falso , pongo:

Q <- lista.
y un while con [ (Q^Sigu =/ nil )and (LEGAJO > Q^.Sigu^.Info.LEGAJO)] ->
Q <- Q^.sigu

hasta ahi es el insertar nodo normal , pero ahroa para poner el 2do tipo seria:
un while con [ (Q^.info.Legajo = Legajo) and (ANIOINSCRIPTO > Q^.info.ANIOINSCRIPTO)] ->
Q <- Q^.sigu

lo de recien es que : mientras sea el mismo legajo , y ya habia otro con menor anio inscripto , paso al siguiente.

y despues temrino con

P^.Sigu <- Q^.sigu
Q^.sigu <- P.


es asi?

muchas gracias
(Este mensaje fue modificado por última vez en: 17-12-2010 17:28 por Heidad.)
17-12-2010 17:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Cacho Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Otra
-----

Mensajes: 217
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Jul 2009
Mensaje: #4
RE: Duda Algoritmos FINALES
Me parece que lo que preguntas es esto >> http://www.utnianos.com.ar/foro/showthread.php?tid=5127 no?

Igual habria que ver el ejercicio, capaz tenes que armar un vector de listas y ahi ya tenes un ordenamiento por el vector y despues un inserta nodo comun, o lo que dice en el otro post.

[Imagen: n754240885_796267_9581.jpg]
17-12-2010 18:59
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: