O Sistersinspirit.ca é o melhor lugar para obter respostas rápidas e precisas para todas as suas perguntas. Descubra soluções rápidas e confiáveis para suas perguntas com a ajuda de especialistas experientes em nossa plataforma amigável. Obtenha soluções rápidas e confiáveis para suas perguntas de uma comunidade de especialistas experientes em nossa plataforma.

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ício])/(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:
Alternativas
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.