Busca binária + estrutura ordenada

Busca binária + estrutura ordenada

por Claynon Souza -
Número de respostas: 1

Foi dito em sala que há aplicações (como BDs) onde é interessante manter os dados ordenados porque se é feita muitas buscas e mantendo a estrutura ordenado pode-se fazer uma busca binária, que não é muito custosa. Estava pensando e para uma estrutura que recebe muitas alterações é muito caro implementá-la em um array devido ao custo de inserção e remoção ordenada. Então pensei em uma implementação em um lista ligada (ou duplamente ligada) mas não consegui pensar em uma forma eficiente de implementar um algoritmo de busca binária num lista desse tipo. Existe um método?

Seriam árvores (binárias nesse caso) as mais recomendadas para essa aplicação?

Em resposta à Claynon Souza

Re: Busca binária + estrutura ordenada

por José Coelho de Pina -

[...]
Seriam árvores (binárias nesse caso) as mais recomendadas para essa aplicação?

Hmmm.
Aplicações em banco de dados (MAC0426) envolvem vários conceitos e não acho que haja uma respota simples.
Desculpe se passei a falsa impressão que ordenação e busca binária resolveriam o problema.
Soluções podem envolver vários ingredientes como:

  • ordenação (de alguma espécie);
  • busca (de alguma espécie: pode generalizar a busca binária, MAC0338)
  • estruturas sequenciais (como vetores);
  • estruturas encadeadas (como listas, árvores);
  • estruturas de árvores (que generaliza listas, alguma espécie de "B-árvores", MAC0323);
  • sei-lá-eu-mais o que...

Os professores de BD são as pessoas mais apropriadas para responder coisas desse tipo.
Não deve haver uma resposta geral.
Acredido que as respostam sejam do tipo

se o problema é blá, então pode-se usar blá-blá, com blá-blá-blá,
que é bom para xxx, mas pode ser ruim para yyy.

O ponto que liga essas coisas com MAC0122 são os conceitos (busca, ordenação, estrutura encadeada,...).
Por exemplo, copiei o trecho abaixo da página http://en.wikipedia.org/wiki/Database

"In the Hierarchical model different record types (representing real-world entities) are embedded in a predefined hierarchical (tree-like) structure. This hierarchy is used as the physical order of records in storage. Record access is done by navigating through the data structure using pointers combined with sequential accessing."