Per i due algoritmi di ricerca stringhe: KMP e albero dei suffissi, che è preferibile in quali casi? Dare alcuni esempi pratici.Algoritmi di ricerca stringhe
9
A
risposta
11
Un albero di suffisso è migliore se si deve rispondere a molte domande come "l'ago è presente nel pagliaio?". KMP è migliore se devi cercare una sola stringa in un'altra stringa singola e non doverlo fare molte volte.
Un albero di suffisso è una struttura di dati molto più generale, quindi è possibile fare molto di più con esso. Scopri cosa puoi fare con esso here. KMP è utile per scoprire se una stringa è una sottostringa in un'altra stringa.
Si potrebbe anche voler controllare altri algoritmi, come ad esempio Boyer-Moore, Rabin-Karp e anche l'algoritmo ingenuo, in quanto vi sono situazioni (input) in cui uno è migliore degli altri.
Linea di fondo è:
- Se avete un sacco di domande come quello che ho citato sopra, vale la pena di costruire un albero di suffissi e poi rispondere a ogni query più velocemente.
- Se è necessario fare più di questo tipo di query, vale anche la costruzione di un albero di suffisso.
- Se ci si preoccupa solo occasionalmente di trovare se una stringa è una sottostringa di un'altra stringa, quindi utilizzare KMP.
Problemi correlati
- 1. Algoritmi di ranking/rilevanza di ricerca
- 2. Alla ricerca di algoritmi di distorsione dell'immagine veloce
- 3. Ricerca stringhe cicliche
- 4. Ricerca stringhe parziali PHP
- 5. Testo, algoritmi di riconoscimento degli accordi basati su stringhe?
- 6. String algoritmi somiglianza
- 7. Confronta algoritmi di similarità
- 8. Algoritmi di corrispondenza stringa ad alta velocità
- 9. Ricerca stringa nell'array di stringhe nell'obiettivo c
- 10. Ricerca di stringhe corrispondenti da javascript array
- 11. Javascript - Ricerca di stringhe, cosa lo risolverà?
- 12. Ricerca di stringhe letterali nel mio codice
- 13. Ricerca di stringhe multiple in più file
- 14. Libreria .NET per algoritmi di testo?
- 15. Algoritmi veloci per la ricerca della distanza euclidea a coppie
- 16. Algoritmi veloci per la ricerca di set unici in due molto lunghe sequenze di testo
- 17. Algoritmi di strategia di costruzione di città
- 18. Quali algoritmi utilizza SQL?
- 19. Algoritmi di classifica
- 20. Algoritmi di compressione dati
- 21. Algoritmi di grafi incrementali
- 22. Stringhe di ricerca di grep con interruzioni di riga
- 23. MATLAB array di celle di ricerca per sottoinsieme di stringhe
- 24. Algoritmi/algoritmi di riconoscimento/riconoscimento delle impronte digitali
- 25. Quali sono i buoni casi di test per gli algoritmi di ricerca delle sottostringhe di benchmarking e stress test?
- 26. adattamento della ricerca del testo per algoritmi di confronto grafico/molecolare
- 27. Ricerca di gruppi di stringhe simili in un grande set di stringhe
- 28. Git ricerca di stringhe in un unico file di storia
- 29. Algoritmi genetici
- 30. Programmazione funzionale per algoritmi di base
Cosa ti credi? Ora sembra proprio che tu abbia copiato una parte del tuo compito a casa. –
Compiti? Si prega di taggare è così. – DVK
Questo non è compito. Sono un programmatore professionista che lavora in un'azienda. Questa domanda è solo per acquisire conoscenze. – avd