Le temps de la Complexité et le Coût de l'Externe, de Fusion et de Tri
Je l'ai obtenu à partir d'un lien qui parle de fusion externe de tri.
À partir de la diapositive 6 Exemple: avec 5 pages de mémoire tampon, de sorte 108 page fichier
-
Pass0: [108/5] = 22 tris de 5 pages chacun (dernier de fonctionner uniquement avec 3 pages)
-
Rapidair1 [22/4] = 6 tris de 20 pages chacun (dernier de fonctionner uniquement avec 8 pages)
-
Pass2: [6/3] = 2 tris, 80 pages et 28 pages
-
Pass 3: [2/2] = 1 fichier Trié de 108 pages
Question: Ma compréhension est en externe, de fusion et de tri, en passe de 0 vous créer des morceaux et puis trier chaque morceau. Dans le reste de passe que vous gardez la fusion.
Ainsi, l'application qui à l'exemple ci-dessus, puisque nous n'avons que 5 pages de mémoire tampon, dans le Passage à 0 de ses clair que nous avons besoin 22 tris de 5 pages chacun.
-
Maintenant, pourquoi faisons-nous tris pour le reste passe à la place ou à la fusion ?
-
Comment se fait-il dit, pour passer de 1, 6 tris de 20 pages chacun quand on n'a que 5 pages de mémoire tampon ?
-
Où est exactement de fusion qui se passe ici ? et comment est N en réduisant à chaque passage je.e de 108 à 22 à 6 à 2 ?
Vous devez vous connecter pour publier un commentaire.
Externe, de Fusion, le Tri est nécessaire lorsque vous ne pouvez pas stocker toutes les données dans la mémoire. Le meilleur que vous pouvez faire est de briser les données dans des tris et de fusionner les pistes dans des passes suivantes. La longueur de course est lié à votre disposition taille de la mémoire tampon.
Pass0: vous êtes en effectuant les opérations EN PLACE. Si vous chargez 5 pages de données dans la mémoire, puis de les trier en place en place à l'aide d'un algorithme de tri.
Ces 5 pages seront stockés ensemble comme une course.
Passes suivants: vous ne pouvez plus faire les activités en place, puisque vous êtes la fusion s'exécute de nombreuses pages. 4 pages sont chargées dans la mémoire, et le 5ème est le tampon d'écriture. La fusion est identique à l'algorithme de tri fusion, mais vous allez diviser et conquérir par un facteur de B-1 au lieu de 2. Lorsque le tampon d'écriture est rempli, il est écrit sur le disque et la page suivante est commencé.
Complexité:
Lors de l'analyse de la complexité de la fusion externe de tri, le nombre d'I/Os est ce qui est envisagé. Dans chaque passage, vous devez lire une page et d'écrire la page. Soit N le nombre de pages. Chaque course sera le coût 2N. Lire la page, écrire la page.
Soit B le nombre de pages que vous pouvez tenir de l'espace tampon et N le nombre de pages.
Il y aura ceil(log_B-1(ceil(N/B))) passe. Chaque passage aura 2N I/Os. Donc O(nlogn).
Dans chaque passe, la page de la longueur de course est en augmentation par un facteur de B-1, et le nombre de tris est en diminution par un facteur de B-1.
Pass0: ceil(108 /5) = 22, 5 pages par exécuter
Rapidair1: ceil(22 /4) = 6, 20 pages par exécuter
Pass2: ceil(6 /4 ) = 2, 80 pages par exécuter
Pass3: ceil(2 /4 ) = 1 - faire, 1 série de 108 pages
A. dans la mesure où il ne mentionne JAMAIS la fusion, je suppose (l'espoir) que la "tri", les passes sont à effectuer les fusions.
B. Encore une fois, en supposant que c'est la fusion, vous avez besoin d'un tampon pour enregistrer les enregistrements fusionnés, et l'utilisation de l'un des tampons pour chaque fichier fusionnés: ainsi, les 4 fichiers d'entrée, chaque w/5 pages: 20 pages.
C. Crois que j'ai répondu, où l'opération de fusion est deux fois maintenant 🙂