Um desenvolvedor de software certamente terá de implementar algum método de busca durante sua carreira

profissional. Existem diversas técnicas bastante conhecidas, utilizando estruturas de dados variadas. Observe, abaixo, um algoritmo de busca: 01 - Busca(A, chave, início, final)
02 - Se início <= final então
03 - meio <- início+(final-início)*(chave-A[iníc io])/(A[final]-A[início])
04 - Se A[meio] = chave então
05 - retorne meio
06 - Senão, se chave < A[meio] então
07 - retorne Busca(A, chave, início, meio-1)
08 - Senão, se chave > A[meio]
09 - retorne Busca(A, chave, meio+1,final)
10 - Senão
11 - retorne "elemento ausente"

I - Nesse algoritmo, é interessante que os elementos estejam distribuídos de forma homogênea, ao longo do arranjo.
II - Esse algoritmo tem melhor desempenho quando aplicado a listas dinâmicas.
III - Tal tipo de busca necessita que o arranjo esteja ordenado para funcionar.

A partir disso, é possível classificar como correto o que se afirma em:
Alternativa 1
I, apenas.

Alternativa 2:
II, apenas.

Alternativa 3:
I e II, apenas.

Alternativa 4:
I e III, apenas.

Alternativa 5:
I, II e III.

1 Resposta

  • Marquinhos

    Apenas as alternativas I e IV estão corretas.

    É preciso que os desenvolvedores de softwares implementem métodos de busca em sua carreira profissional, sendo assim, existem várias técnicas.

    Um exemplo é a busca linear indexada, que consiste em uma otimização da busca linear simples, muito utilizada para a identificação de que o alvo não encontra o vetor.

    Outro exemplo é a busca por interpolação que se caracteriza por ser mais lenta que a busca sequencial. E a busca binária que é inferior à busca sequencial.

    Bons estudos!

Clique aqui para adicionar a sua resposta.