faabio Posted March 11, 2009 at 05:29 PM Report Share #249919 Posted March 11, 2009 at 05:29 PM Tenho um array (de estruturas) dinâmico, que pode crescer até 10000. Era de grande valor que fosse possível usar uma função de hash para as procuras, mas o facto do array ser dinâmico complica-me bastante a vida. Tendo em conta que tenho um ficheiro com a informação, cheguei a esta possível solução: 1. Sempre que insiro algo, aumento o tamanho da lista, que teria de ter guardado algures 2. Actualizo o ficheiro 3. Faço o parser para montar a nova estrutura Deste modo poderia utilizar uma função de hash, mas esta solução é bastante demorada. Alguém me pode dizer se existe uma forma melhor, ou uma função de hash que resolva o meu problema? Dado que a chave para tal função é uma string... Link to comment Share on other sites More sharing options...
mogers Posted March 11, 2009 at 06:04 PM Report Share #249926 Posted March 11, 2009 at 06:04 PM Não percebi quando é que deves actualizar o ficheiro. Uma tabela de hash deve ter pelo menos o dobro do tamanho dos elementos que contém. Assim, sugiro que comeces o programa com um tamanho X para a tabela de hash. Quando o número de elementos atingir metade ( ou seja X/2 ), duplicas o tamanho da tabela de hash e tens de posicionar os elementos na nova tabela (esta operação é muito lenta, convém ser feita poucas vezes ). "What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação. 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