Pour les deux algorithmes de recherche de chaîne: KMP et arborescence de suffixes, laquelle est préférée dans quels cas? Donnez quelques exemples pratiques.Algorithmes de recherche de chaîne
9
A
Répondre
11
Un arbre de suffixe est préférable si vous devez répondre à beaucoup de questions telles que "l'aiguille est-elle présente dans la meule de foin?". KMP est meilleur si vous avez seulement à chercher une chaîne dans une autre seule chaîne, et ne pas avoir à le faire beaucoup de fois. Un arbre de suffixe est une structure de données beaucoup plus générale, vous pouvez donc en faire beaucoup plus avec lui. Voyez ce que vous pouvez en faire here. KMP est utile pour trouver si une chaîne est une sous-chaîne dans une autre chaîne.
Vous pouvez également consulter d'autres algorithmes, tels que Boyer-Moore, Rabin-Karp et même l'algorithme naïf, car il existe des situations (entrées) dans lesquelles l'un est meilleur que les autres.
Bottom line est:
- Si vous avez beaucoup de questions comme celle je l'ai mentionné ci-dessus, il vaut la peine de construire un arbre suffixe, puis répondre plus rapidement chaque requête.
- Si vous avez besoin de faire plus que ce type de requêtes, une arborescence de suffixes vaut également la peine d'être créée.
- Si vous ne vous souciez que de trouver occasionnellement si une chaîne est une sous-chaîne d'une autre chaîne, utilisez KMP.
Questions connexes
- 1. algorithmes formatage de chaîne suggestion
- 2. Hiérarchie hiérarchique des algorithmes de recherche?
- 3. Algorithmes de recherche de fichiers utilisant l'indexation dans linux
- 4. recherche de chaîne unicode
- 5. Chaîne de recherche
- 6. Algorithme de recherche de chaîne pour les caractères chinois
- 7. Chaîne de recherche pour la sous-chaîne
- 8. SQL 2005 - Chaîne de recherche
- 9. C#, chaîne de recherche, ASP
- 10. recherche de chaîne Remplacer AS3
- 11. Algorithmes de remplissage d'inondation
- 12. Algorithmes: binarisation de données
- 13. Algorithmes de colorimétrie et d'ajustement de palettes
- 14. Algorithmes de génération de cartes
- 15. Algorithmes de correspondance de modèles
- 16. PHP, cas de recherche dans la recherche de chaîne
- 17. Des algorithmes courants pour l'indexation/la recherche dans mes données?
- 18. Exemples de recherche de chaîne en Python
- 19. Chaîne de stockage et de recherche MySQL
- 20. php/mysql chaîne de requête de recherche
- 21. recherche de chaîne de vitesse en PHP
- 22. Chaîne de recherche de filtre FreeTextTable
- 23. Transformer la chaîne de recherche en chaîne de recherche compatible FullText?
- 24. Algorithmes question/listes de problèmes
- 25. Algorithmes de traitement des pixels
- 26. Algorithmes de déduplication des données
- 27. Implémentation des algorithmes de tri et/ou de recherche - où et pourquoi
- 28. Python: Simuler des algorithmes de recherche dans les modèles de réseau
- 29. Comment passer une chaîne de recherche pour effectuer une recherche?
- 30. Algorithmes de stratégie de construction de la ville
Que pensez-vous vous-même? Il semble maintenant que vous avez copié une partie de votre devoir. –
Travail à domicile? S'il vous plaît étiqueter est ainsi. – DVK
Ce n'est pas un devoir. Je suis un programmeur professionnel travaillant dans une entreprise. Cette question est juste pour acquérir des connaissances. – avd