• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

faabio

Alocação dinâmica + função de hash

2 mensagens neste tópico

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora