No puedo entender el paso de fusión de tipo externo. ¿Cómo puedo ordenar 1 GB de datos en disco en 100 MB de RAM?

Primero cargue cada tirada de 100 MB de los 1 GB de datos, ordénelos y escriba los 100 MB ordenados como un archivo separado. Una vez que todos los datos estén en un archivo ordenado, combínelos.
La fusión se realiza como sigue:
Creó un nuevo archivo de destino final listo para escribir pero vacío.
Abra varios de sus archivos de datos ordenados de 100 MB, tal vez todos, ya que solo hay 10 en este ejemplo. Lea el primer elemento de cada archivo ordenado en la memoria. Escriba el más pequeño de los elementos en memoria en el archivo de destino final, reemplace el elemento escrito con el siguiente elemento de cualquier archivo del que provenga ese elemento. Sigue haciéndolo. Cuando se agota cualquier archivo, está bien, solo tiene una cosa menos en la memoria. Cuando todos los archivos están agotados y todos los elementos en memoria escritos, ya está.
El paso de fusión funciona porque ya hemos ordenado cada fragmento, sabemos que los elementos en cada archivo están en orden. La fusión solo descubre cómo entrelazar cada pedido parcial.

La clasificación de fusión externa generalmente usa una estrategia híbrida de clasificación-fusión. En la fase de clasificación, se leen, ordenan y escriben en un archivo temporal fragmentos de datos lo suficientemente pequeños como para caber en la memoria principal. En la fase de fusión, los subarchivos ordenados se combinan en un solo archivo más grande. La idea detrás de la ordenación externa es ordenar los fragmentos de datos que caben en la RAM, luego fusiona los fragmentos ordenados. es decir

  • Primero dividimos el archivo en ejecuciones de modo que el tamaño de una ejecución sea lo suficientemente pequeño como para caber en la memoria principal.
  • Luego, clasifique cada ejecución en la memoria principal utilizando un algoritmo de clasificación estándar.
  • Finalmente fusionamos las ejecuciones resultantes juntas en ejecuciones sucesivamente más grandes, hasta que se ordena el archivo.

Consulte la fuente anterior para obtener más detalles e implementación.

A2A Dado que no sé exactamente qué referencias están disponibles para usted, le recomiendo ordenar algoritmos: internos y externos como punto de partida. La clasificación es un tema que ha recibido mucha investigación, por lo que antes de saltar directamente a la Clasificación externa, le recomiendo que comprenda la Clasificación interna que se podría hacer con una memoria virtual de 1G.

Para responder completamente a su pregunta, necesitaría saber qué sistema operativo está utilizando para ver si proporciona la funcionalidad necesaria para la clasificación externa. Este es un ejemplo de cómo crear su propia rutina de clasificación que completaría una clasificación madura del sistema operativo.