Comment fusionner deux arborescence splay avec le coût amorti de log (n)?fusionner deux arborescence splay
Répondre
Je suppose que les arbres de jeu que vous voulez fusionner contiennent n
objets chacun. (c'est-à-dire au total, nous avons 2n
objets). Ensuite, je pense qu'il n'est pas possible de les fusionner avec log(n)
coût amorti, sauf si vous imposer d'autres hypothèses. Si vous n'avez aucune information sur les objets contenus dans les arbres, vous devrez au moins regarder chaque élément de l'un des deux arbres, ce qui aura coûté O(n)
. Cependant, si vous pouvez faire certaines hypothèses sur les objets, vous pouvez le faire dans O(log(n))
. Vous pouvez extraire certains sous-arbres de sorte que vous puissiez insérer la sous-arborescence entière dans l'autre arborescence de splay. Cependant, je ne connais pas un algorithme exact comment acchieve O(log(n))
. Par exemple, si nous savons que l'objet le plus grand dans Tree1
est plus petit que le plus petit objet dans Tree2
, alors nous pourrions simplement afficher le nœud le plus à gauche de Tree2
et ensuite nous suspendons la racine de Tree1
sous la nouvelle racine de Tree2
.
Ça m'a beaucoup aidé. et d'ailleurs il est impossible de fusionner 2 arborescence splay sans condition dans O (Log (n)) –
- 1. Arbre Splay récursif
- 2. Fusionner deux objets JavaScript
- 3. Fusionner deux tables MySQL
- 4. Fusionner deux tables
- 5. Fusionner deux jQuery Fonction
- 6. Fusionner deux UIImages
- 7. Fusionner deux scripts JavaScript
- 8. Fusionner deux XMLDOMDocuments
- 9. Comment fusionner deux objets?
- 10. BlackBerry - comment deux fusionner deux images
- 11. fusionner deux ou plusieurs révisions
- 12. Fusionner deux Hash Maps Android
- 13. fusionner deux objets de données
- 14. Comment fusionner deux branches SVN?
- 15. fusionner deux images par Opencv
- 16. Comment fusionner deux listes IQueryable
- 17. Comment fusionner deux projets Delphi?
- 18. Fusionner deux lignes dans SQL
- 19. Comment fusionner deux itérateurs python?
- 20. Fusionner virtuellement deux tables MySQL
- 21. fusionner ou combiner deux projets. deux délégués, deux fenêtres
- 22. Qu'est-ce qu'une arborescence Splay, un arbre rouge-noir, un arbre AVL, un arbre B et un arbre-T?
- 23. Comment puis-je fusionner deux sorties de deux requêtes Linq?
- 24. fusionner deux tables avec la même structure
- 25. Fusionner deux cellules de tableau HTML
- 26. fusionner deux images en utilisant PHP?
- 27. Comment fusionner deux XmlDocuments en C#
- 28. fusionner deux lignes et la recherche dans
- 29. SVN - Fusionner l'historique de deux repos
- 30. Migration des rails; fusionner deux modèles
S'il y a des doublons dans les arbres, les doublons doivent-ils être fusionnés ou non? Par exemple, si les arbres sont [1,2,3,4] et [1,2,5], le résultat devrait être [1,1,2,2,3,4,5] ou [1,2,3 , 4,5]? –
@niki: ce n'est pas si important. Supposons que les éléments en double ne sont pas autorisés. –