1 / 28

Ordenación Externa

Ordenación Externa. Ordenación de porciones de un archivo desordenado en memoria, generando varios archivos de trabajo ordenados Fusión de archivos ordenados Mejoras

gudrun
Download Presentation

Ordenación Externa

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ord. Externa con Montículos Ordenación Externa • Ordenación de porciones de un archivo desordenado en memoria, generando varios archivos de trabajo ordenados • Fusión de archivos ordenados Mejoras • Reemplazo de registros que salen ordenados por registros desordenados: archivos ordenados con más registros que la capacidad del buffer de ordenación • Ordenación interna por montículos: menor movimiento de registros en el buffer de ordenación

  2. Ord. Externa con Montículos Variantes Ordenación Externa • Cuando no se puede incorporar un nuevo registro al buffer de ordenación las opciones son: • Se achica el buffer un registro y se usa el espacio para guardar al registro con identificador menor al último que salió ordenado (replacement selection) • No se achica el buffer: se guarda el registro en un archivo temporal que no puede tener más registros que el buffer de ordenación (natural selection)

  3. Ord. Externa con Montículos Ordenación Interna por Montículos • Un montículo (heap) es un árbol binario perfecto representado implícitamente en un arreglo. • Para ordenar de menor a mayor, los identificadores en un nodo deben ser menores a los de cualesquiera de sus descendientes. • El árbol se representa en el arreglo sin punteros: los hijos de un nodo en la posición i están en las posiciones 2*i y 2*i+1. • Un árbol con n nodos se almacena en las posiciones 1 a n del arreglo.

  4. Ord. Externa con Montículos Ejemplo de Selección con Reemplazo • Registros a ordenar (representados por identificadores): • 29, 132, 234, 68, 130, 49, 197, 35, 110, 146, 174, 153, 189, 200, 115 • Buffer de ordenación con capacidad para 7 registros • 1. Se carga el buffer desde el archivo (única vez): • 29, 132, 234, 68, 130, 49, 197

  5. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110, 146, 174, 153, 189, 200, 115 • 2. Construir montículo en el buffer (de izquierda derecha, hasta el último elemento cargado): • 29, 132, 234, 68, 130, 49, 197 • 29, 132, 234, 68, 130, 49, 197 • 29, 132, 234, 68, 130, 49, 197 • 29, 132, 234, 68, 130, 49, 197 • 29, 68, 234, 132, 130, 49, 197 • 29, 68, 234, 132, 130, 49, 197 • 29, 68, 234, 132, 130, 49, 197 • 29, 68, 49, 132, 130, 234, 197 • 29, 68, 49, 132, 130, 234, 197

  6. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197,35, 110, 146, 174, 153, 189, 200, 115 • 3. Crear archivo de trabajo ordenado y repetir hasta que se agote el montículo • Extraer registro de la raíz y escribirlo ordenado • 29, 68, 49, 132, 130, 234, 197 • Tomar un registro desordenado • 35, 68, 49, 132, 130, 234, 197 29

  7. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110, 146, 174, 153, 189, 200, 115 • Extraer registro de la raíz y escribirlo ordenado • 35, 68, 49, 132, 130, 234, 197 • Tomar un registro desordenado • 110, 68, 49, 132, 130, 234, 197 • 49, 68, 110, 132, 130, 234, 197 29, 35

  8. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146, 174, 153, 189, 200, 115 • Extraer registro de la raíz y escribirlo ordenado • 49, 68, 110, 132, 130, 234, 197 • Tomar un registro desordenado • 146, 68, 110, 132, 130, 234, 197 • 68, 146, 110, 132, 130, 234, 197 • 68, 130, 110, 132, 146, 234, 197 29, 35, 49

  9. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174, 153, 189, 200, 115 • Extraer registro de la raíz y escribirlo ordenado • 68, 130, 110, 132, 146, 234, 197 • Tomar un registro desordenado • 174, 130, 110, 132, 146, 234, 197 • 110, 130, 174, 132, 146, 234, 197 29, 35, 49, 68

  10. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153, 189, 200, 115 • Extraer registro de la raíz y escribirlo ordenado • 110, 130, 174, 132, 146, 234, 197 • Tomar un registro desordenado • 153, 130, 174, 132, 146, 234, 197 • 130, 153, 174, 132, 146, 234, 197 • 130, 132, 174, 153, 146, 234, 197 29, 35, 49, 68, 110

  11. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189, 200, 115 • Extraer registro de la raíz y escribirlo ordenado • 130, 132, 174, 153, 146, 234, 197 • Tomar un registro desordenado • 189, 132, 174, 153, 146, 234, 197 • 132, 189, 174, 153, 146, 234, 197 • 132, 146, 174, 153, 189, 234, 197 29, 35, 49, 68, 110, 130

  12. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189,200, 115 • Extraer registro de la raíz y escribirlo ordenado • 132, 146, 174, 153, 189, 234, 197 • Tomar un registro desordenado • 200, 146, 174, 153, 189, 234, 197 • 146, 200, 174, 153, 189, 234, 197 • 146, 153, 174, 200, 189, 234, 197 29, 35, 49, 68, 110, 130, 132

  13. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189,200, 115 • Extraer registro de la raíz y escribirlo ordenado • 146, 153, 174, 200, 189, 234, 197 • Tomar un registro desordenado • 197, 153, 174, 200, 189, 234, 115 • 197, 153, 174, 200, 189, 234, 115 • 153, 197, 174, 200, 189, 234, 115 • 153, 189, 174, 200, 197, 234, 115 29, 35, 49, 68, 110, 130, 132, 146

  14. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189,200, 115 • Extraer registro de la raíz y escribirlo ordenado • 153, 189, 174, 200, 197, 234, 115 • Tomar un registro desordenado • 234, 189, 174, 200, 197, 234,115 • 234, 189, 174, 200, 197, 234,115 • 174, 189, 234, 200, 197, 234,115 29, 35, 49, 68, 110, 130, 132, 146, 153

  15. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189,200, 115 • Extraer registro de la raíz y escribirlo ordenado • 174, 189, 234, 200, 197, 234,115 • Tomar un registro desordenado • 197, 189, 234, 200, 197,234,115 • 197, 189, 234, 200, 197,234,115 • 189, 197, 234, 200, 197,234,115 29, 35, 49, 68, 110, 130, 132, 146, 153, 174

  16. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189,200, 115 • Extraer registro de la raíz y escribirlo ordenado • 189, 197, 234, 200, 197,234,115 • Tomar un registro desordenado • 200, 197, 234, 200,197,234,115 • 200, 197, 234, 200,197,234,115 • 197, 200, 234, 200,197,234,115 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189

  17. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189,200, 115 • Extraer registro de la raíz y escribirlo ordenado • 197, 200, 234, 200,197,234,115 • Tomar un registro desordenado • 234, 200, 234,200,197,234,115 • 234, 200, 234,200,197,234,115 • 200, 234, 234,200,197,234,115 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197

  18. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189,200, 115 • Extraer registro de la raíz y escribirlo ordenado • 200, 234, 234,200,197,234,115 • Tomar un registro desordenado • 234, 234,234,200,197,234,115 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200

  19. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189,200, 115 • Extraer registro de la raíz y escribirlo ordenado • 234, 234,234,200,197,234,115 • Tomar un registro desordenado • 234,234,234,200,197,234,115 • ¡Montículo agotado! • Se cierra el archivo de trabajo ordenado y se justifican a izquierda los elementos congelados • 115 (Y se continúa desde el paso 2...) 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234

  20. Ord. Externa con Montículos 29, 132, 234, 68, 130, 49, 197, 35, 110,146,174,153,189,200, 115 • 2. Construir montículo en el buffer (de izquierda derecha, hasta el último elemento cargado): • 115 • 3. Crear archivo de trabajo ordenado y repetir hasta que se agote el montículo • Extraer registro de la raíz y escribirlo ordenado • 115 • Tomar un registro desordenado • 115 • ¡Montículo agotado! ... 115

  21. Ord. Externa con Montículos 29 • 4. Fusionar los archivos de trabajo ordenados: • Leer un registro de cada archivo y obtener el de menor identificador • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115 Mientras el menor identificador no sea la clave máxima 999: Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115

  22. Ord. Externa con Montículos 29, 35 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115 29, 35, 49

  23. Ord. Externa con Montículos 29, 35, 49, 68 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115, 999 29, 35, 49, 68, 110

  24. Ord. Externa con Montículos 29, 35, 49, 68, 110, 115 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115, 999 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115, 999 29, 35, 49, 68, 110, 115, 130

  25. Ord. Externa con Montículos 29, 35, 49, 68, 110, 115, 130, 132 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115, 999 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115, 999 29, 35, 49, 68, 110, 115, 130, 132, 146

  26. Ord. Externa con Montículos 29, 35, 49, 68, 110, 115, 130, 132, 146, 153 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115, 999 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115, 999 29, 35, 49, 68, 110, 115, 130, 132, 146, 153, 174

  27. Ord. Externa con Montículos 29, 35, 49, 68, 110, 115, 130, 132, 146, 153, 174, 189 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115, 999 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234 • 115, 999 29, 35, 49, 68, 110, 115, 130, 132, 146, 153, 174, 189, 197

  28. Ord. Externa con Montículos 29, 35, 49, 68, 110, 115, 130, 132, 146, 153, 174, 189, 197, 200 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234, 999 • 115, 999 • Escribir el registro en el archivo fusión y obtener el siguiente menor • 29, 35, 49, 68, 110, 130, 132, 146, 153, 174, 189, 197, 200, 234, 999 • 115, 999 29, 35, 49, 68, 110, 115, 130, 132, 146, 153, 174, 189, 197, 200, 234

More Related