tri externe
dans cette page web:
http://web.eecs.utk.edu/~huangj/CS302S04/notes/external-sorting2.html
La fusion qui en résulte s'exécute en
successivement plus court, jusqu'à ce que le
le fichier est trié.
Que j'ai cité, comment pouvons-nous la fusion qui en résulte s'exécute??? Nous n'avons pas hava que beaucoup de mémoire.
source d'informationauteur Josh Morrison
Vous devez vous connecter pour publier un commentaire.
Imaginez que vous avez le nombres de 1 à 9
Et supposons que seulement 3 tenir en mémoire à la fois.
Donc, si vous voulez coupez-les en morceaux de 3 et de tri de chacun, le stockage de chaque résultat dans un fichier séparé:
Maintenant, vous auriez du ouvrir chacun des trois fichiers comme des ruisseaux et de lire la première valeur de chaque:
De sortie la valeur la plus basse
1
et obtenir la prochaine valeur de ce flux, vous avez maintenant:De sortie de la prochaine valeur la plus basse
2
et continuer jusqu'à ce que vous avez sorti l'ensemble de la liste triée.Si vous traitez les deux pistes
A
etB
dans certaines grandes exécuterC
vous pouvez le faire ligne par ligne, générant progressivement les grandes séries, mais seulement à la lecture de plus de 2 lignes à la fois. Parce que le processus est itératif et parce que l'on travaille sur des flux de données plutôt que des coupes de données que vous n'avez pas besoin de s'inquiéter à propos de l'utilisation de la mémoire. D'autre part, l'accès au disque pourrait rendre l'ensemble du processus lent-mais il est certain que les battements de ne pas être en mesure de faire le travail en premier lieu.