Informática, perguntado por Emerson4775, 1 ano atrás

A operação de pesquisa é encontrada com muita frequência em aplicações computacionais, sendo portanto importante estudar estratégias distintas para efetuá-la. Por exemplo, um programa de controle de estoque pode pesquisar, dado um código numérico ou um nome, a descrição e as características de um determinado produto. Se temos um grande número de produtos cadastrados, o método para efetuar a pesquisa deve ser eficiente, caso contrário a pesquisa pode ser muito demorada, inviabilizando sua utilização. Conforme vimos, certos métodos de organizar dados tornam o processo de busca mais eficiente. Como a operação de busca é uma tarefa muito comum em computação, o conhecimento desses métodos é de fundamental importância para quem vai lidar com programação.



Em diversas aplicações reais, precisamos de algoritmos de busca mais eficientes. Seria possível melhorarmos a eficiência do algoritmo de busca ?

Soluções para a tarefa

Respondido por bokomoko
2
sim
seria possível tornar mais eficiente a busca

Todo algoritmo pode ser otimizado nem que seja para deixar de ser genérico e passar a ser mais específico para uma certa disposição dos dados.

Um algoritmo pode ser elaborado inicialmente partindo de uma estrutura de dados mais simples, como por exemplo um texto que é armazenado como uma simples cadeia de caracteres. Nessa situação uma busca sequencial simples pode ser facilmente implementada. Porém, se o texto for muito grande talvez outra estrutura de dados seja mais interessante, como por exemplo uma árvore k-dimensional.

Um fato que é frequentemente esquecido pelos programadores é a estrutura em que o dado a ser processado se encontra. Como a ênfase é o algoritmo em si, a estrutura do dado é esquecida. 

Outro fato que frequentemente é esquecido é o tamanho/volume do dado. Para volumes pequenos alguns algoritmos mais simples são bastante suficientes. Isso pode mudar caso o volume dos dados seja maior.

No caso da busca de texto, uma técnica que vale a pena ser utilizada é a preparação de lista de tokens da string original e de tokens da string que é buscada. A criação de de dois conjuntos de tokens faz com que a busca de uma string se transforme numa verificação de pertencimento a dois conjuntos, que utilizando-se das técnicas apropriadas pode tornar a busca em textos longos muito mais eficiente.

Perguntas interessantes