Ceci est une question du livre 'Database Systems Le livre complet, 2e édition' - Chapitre 15: Algorithme à deux passes basé sur le tri. "Parfois, il est possible de sauvegarder des E/S de disque si nous laissons la dernière sous-liste en mémoire Il peut même être judicieux d'utiliser des sous-listes de moins de blocs pour profiter de cet effet. de peuvent être sauvés de cette façon? " J'ai compris que vous divisez la relation d'origine en sous-listes et que vous les triez dans la première passe, et conservez la dernière liste en mémoire, qui occupera moins de M-1. Alors, comment progressez-vous avec le tri?Tri de fusion multiway bidirectionnel
3
A
Répondre
1
Ceci est juste une supposition, mais je soupçonne que la réponse peut être décrite comme suit. Standard « niveau au-un-temps » fusion ressemble tri comme ceci:
1 1 1 1 1 1 1 1
--- --- --- --- -- pass 1
2 2 2 2
----- ----- -- pass 2
4 4
--------- -- pass 3
8
Notez ici que nous effectuons une passe complète des données d'entrée avant de passer au niveau suivant.
Une alternative est « sous-arbre-à-un-temps » fusion de tri, qui ressemble à ceci:
1 1 1 1 1 1 1 1
--- | | | | | |
2 --- | | | |
| 2 | | | |
----- | | | |
4 --- | |
| 2 ---
| | 2
| -----
| 4
---------
8
Ici, nous fusionnons chaque sous-arbre avec son voisin de la même hauteur que dès que le voisin a été construit. Nous faisons la même quantité de travail, mais la localité est améliorée.
Cheers.
Questions connexes
- 1. Tri Bubble bidirectionnel en Java?
- 2. AngularJs Filtre de tri bidirectionnel Exemple?
- 3. comparaison de tri fusion
- 4. C# Multiway Linked List
- 5. tri externe: multivoies fusion
- 6. Fusion sur place Tri
- 7. tri par fusion complexité
- 8. requête d'implémentation de tri de fusion
- 9. Tri de fusion de mémoire externe
- 10. mappage bidirectionnel d'un hibernate bidirectionnel
- 11. Implémentation de la fusion externe Tri
- 12. Schéma vecteur utilisant le tri de fusion
- 13. Fusion, tri, maintien de l'ordre des lignes
- 14. Comment réparer mon tri de fusion?
- 15. Combinaison du tri par fusion avec le tri par insertion
- 16. Comprendre et résoudre K-Way tri par fusion
- 17. Comment optimiser le tri par fusion?
- 18. Espace requis pour un tri par fusion
- 19. Tri par fusion et à terme définitions
- 20. Cache multithread efficaces tri par fusion
- 21. Le tri par fusion donne IndexOutOfBoundsException
- 22. Tri et fusion tableau associatif (PHP)
- 23. Mappage bidirectionnel
- 24. Fileur de données bidirectionnel
- 25. algorithme de tri de fusion - comptage des inversions
- 26. sortie de tri de fusion est pas entièrement trié
- 27. L'algorithme de tri de fusion ne fonctionne pas correctement
- 28. tri fusion de « programmation Scala » provoque un débordement de pile
- 29. Multi-threading un algorithme de tri de fusion
- 30. Comment effectuer un tri de fusion à l'aide de LINQ?