Para los dos algoritmos de búsqueda de cadenas: KMP y árbol de sufijos, ¿cuál es el preferido en qué casos? Da algunos ejemplos prácticos.Algoritmos de búsqueda de cadenas
9
A
Respuesta
11
árbol Un sufijo es mejor si usted tendrá que responder a muchas preguntas tales como "es la aguja presente en el pajar?". KMP es mejor si solo tiene que buscar una cadena en otra cadena y no tener que hacerlo muchas veces.
Un árbol de sufijos es una estructura de datos mucho más general, por lo que se puede hacer mucho más con ella. Vea lo que puede hacer con él here. KMP es útil para encontrar si una cadena es una subcadena en otra cadena.
Es posible que también desee comprobar otros algoritmos, como Boyer-Moore, Rabin-Karp e incluso el algoritmo ingenuo, ya que hay situaciones (entradas) en las que una es mejor que las demás.
El fondo es:
- Si usted tiene una gran cantidad de consultas como la que he mencionado anteriormente, vale la pena construir un árbol de sufijos y luego responder a cada consulta rápida.
- Si necesita hacer más que ese tipo de consultas, también vale la pena construir un árbol de sufijos.
- Si solo le preocupa ocasionalmente encontrar si una cadena es una subcadena de otra cadena, entonces use KMP.
Cuestiones relacionadas
- 1. Algoritmos de similitud de cadenas?
- 2. Algoritmos de cadena de búsqueda
- 3. Algoritmos para cadenas "coincidencia difusa"
- 4. Algoritmos de clasificación/relevancia de búsqueda
- 5. Algoritmos de coincidencia de cadenas de alta velocidad
- 6. Algoritmos genéticos de programación y búsqueda
- 7. búsqueda de cadenas usando OQL
- 8. Búsqueda de interpolación en cadenas
- 9. Búsqueda de cadenas parciales PHP
- 10. Algoritmos de búsqueda de subcadenas (gran haystack, aguja pequeña)
- 11. Libros en algoritmos de cadena
- 12. Búsqueda avanzada de cadenas de python
- 13. Búsqueda de cadenas de Java ignorando acentos
- 14. Ejemplos de búsqueda de cadenas en Python
- 15. Eficiente problema de búsqueda de cadenas masivas
- 16. Método de búsqueda y reemplazo de cadenas
- 17. Búsqueda aproximada contra una lista de cadenas
- 18. Búsqueda de múltiples cadenas en múltiples archivos
- 19. Mejor colección para búsqueda rápida de cadenas
- 20. Cómo implementar una búsqueda de cadenas simple
- 21. Comparar algoritmos de similitud
- 22. adaptación de búsqueda de texto para algoritmos de comparación gráfico/molécula
- 23. Cadenas de búsqueda de Grep con saltos de línea
- 24. Bing: búsqueda: ¿solo coincide cadenas literales exactas?
- 25. MATLAB matriz de búsqueda para el subconjunto de cadenas
- 26. Método rápido (er) para búsqueda de comodines de 250K + cadenas
- 27. Tabla de búsqueda de valor en C por cadenas?
- 28. búsqueda de cadenas cortas masivas de alto rendimiento en Python
- 29. ¿Cuáles son los buenos casos de prueba para los algoritmos de búsqueda de subcadenas de benchmarking y stress testing?
- 30. Algoritmos de estrategia de construcción de ciudades
¿Qué piensa usted? Ahora parece que copiaste una parte de tu tarea. –
¿Tarea? Por favor, la etiqueta es así. – DVK
Esto no es tarea. Soy un programador profesional que trabaja en una empresa. Esta pregunta es solo para obtener conocimiento. – avd