thoga31 Posted April 30, 2020 at 06:14 PM Report Share #617988 Posted April 30, 2020 at 06:14 PM Boas, pessoal! Estou a tentar aprofundar o meu conhecimento em algoritmia e cruzei-me com o famoso problema LCS. Implementei uma solução que recorre a uma adaptação do Algoritmo de Wagner-Fischer para determinar qual o comprimento da maior substring comum. Contudo, a complexidade é O(m.n), o que no pior caso se traduz em O(n²). Após pesquisa, encontrei referências à possível existência de algoritmos com melhor complexidade. Venho, pois, ter convosco para vos lançar o tópico, debater algoritmos e saciar a minha curiosidade: conheceis algoritmos com melhor complexidade para resolver este problema? Se sim, quais e com que complexidade? Obrigado desde já. Cumprimentos. Knowledge is free! Link to comment Share on other sites More sharing options...
Warrior Posted October 28, 2020 at 12:05 PM Report Share #619739 Posted October 28, 2020 at 12:05 PM Consegues resolver em O(m+n) com uma árvore de sufixos (suffix tree). Julgo que também deve ser possível com o vector de sufixos (suffix array), mas tinha que pensar melhor. Se calhar tens que meter um log(m) aí no meio. Link to comment Share on other sites More sharing options...
thoga31 Posted November 25, 2020 at 06:13 PM Author Report Share #620395 Posted November 25, 2020 at 06:13 PM Obrigado @Warrior, na altura acabei por me cruzar com os suffix arrays e implementei uma solução com base nesse algoritmo. Também encontrei as suffix trees, mas para ser honesto, não me senti com coragem de as implementar 😄 Knowledge is free! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now