Pascal/Turbo Pascal - ayuda con ordenamiento

   
Vista:

ayuda con ordenamiento

Publicado por juan (83 intervenciones) el 07/10/2007 02:30:09
Que tal Diego nuevamente, te tengo una consulta, si yo tengo un archivo desordenado, como es que hago para ordenarlos de modo tal que queden ordenados para poder hacer el corte de control?

Solo por poner un ejemplo, si tendría un archivo de accidentes de empleados desordenado
( donde cada empleado pudo haber tenido ninguno, uno o mas accidentes), la definición del registro digamos que es Nro de empleado, fecha de accidente y quiero imprirlo ordenado por nro de empleado y a su vez por dia de accidente, como hago por ejemplo para partiendo del desordenado llegar a ordenarlo de modo tal que pueda hacer el corte de control para lograr ese tipo de listado?? un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con ordenamiento

Publicado por Diego Romero (997 intervenciones) el 07/10/2007 07:38:40
Hay muchas formas de hacerlo.
La que menos recursos de computación ocupa desde el punto de vista del rendimiento es cargar el archivo completo en una lista dinámica, ordenar la lista en memoria y reescribir el archivo a partir de la lista. El inconveniente es que si el archivo no cabe en memoria la ordenación no se puede hacer.
Otra forma es hacer de cuenta que el archivo es un array y aplicar la ordenación directamente moviendo los registros físicamente. El inconveniente es que cuando más grande el archivo el tiempo consumido es exponencial.
Y otra forma es no tocar el archivo sino ir creando un archivo paralelo que contenga índices que apunten a los registros y que al leerlo secuencialmente siga el ordenamiento en el otro, es decir crear un archivo de indexación.
Y finalmente la mejor manera de hacer esto es... no tener que ordenar el archivo :). Para esto hay que considerar el criterio de ordenación por cada escritura nueva en el archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con ordenamiento

Publicado por juan (83 intervenciones) el 08/10/2007 18:56:39
Cuando decis "Cargas el archivo completo y ordenas la lista en memoria", lo de la lista me queda claro, pero como hago ponele que quiero ordenar un archivo de alumnos por año y depsues por division. Cargo el archivo de alumnos en la lista, y como lo ordeno por esos dos criterios, que tengo que aplicar para que salgan impresos por año y a su vez opr división si el archivo inicialmente no esta ordenado por lotes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con ordenamiento

Publicado por Diego Romero (997 intervenciones) el 09/10/2007 00:53:24
El segundo criterio no es nada más que tomar la porción de los datos ya ordenados por el primer criterio que sean iguales y ordenarlo como si ese primer criterio no existiera.

111222333333444455666666
125365448863369547785221

La primer fila es el primer criterio, la segunda el segundo, para ordenar por la segunda fila tomas

111
125

Y lo ordenas

222
365

Y lo ordenas.

333333
448863

Y lo ordenas

4444
3695

Y lo ordenas.

55
47

Y lo ordenas.

666666
785221

Y lo ordenas.
Y listo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con ordenamiento

Publicado por juan (83 intervenciones) el 09/10/2007 02:46:57
Te entendí perfectamente, solo una cosa mas, cuando decis

"La primer fila es el primer criterio, la segunda el segundo, para ordenar por la segunda fila tomas

111
125

Y lo ordenas

222
365

Y lo ordenas.

333333
448863

Y lo ordenas

4444
3695

Y lo ordenas.

55
47

Y lo ordenas.

666666
785221 "

"Tomas todos los datos que tengan igual la fila de ordenamiento del 1er criterio, y depsues a su vez ordenas los del segundo", con que herramientas los ordenas, usando listas o arreglos o registros?, digamos tengo que intercambiar todos los campos menos el campo del primer criterio que es igual al de los demás?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con ordenamiento

Publicado por Diego Romero (997 intervenciones) el 09/10/2007 09:17:20
No tiene ninguna importancia. Puedes hacerlo con cualquier estructura de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar