R$50,00
MAPA – ADSIS – ESTRUTURA DE DADOS II – 52_2025
Olá, estudante! Agora é hora de aplicar os conceitos aprendidos na disciplina em um cenário prático, vamos
lá?
A forma mais eficiente de efetuar pesquisa em um arranjo sem a necessidade de memórias auxiliares é a
busca binária. A estratégia consiste em comparar a chave de busca (dado que estamos procurando) ao
elemento do meio do arranjo (vetor). Se forem iguais, a busca terá terminado com sucesso, e o algoritmo
retornará a respectiva posição na qual o elemento foi encontrado. Caso contrário, o vetor será divido em
duas metades, e a pesquisa será repetida na metade “inferior”, se a chave de busca for menor do que o valor
do meio do arranjo, ou na parte “superior”, se a chave de busca for maior. A cada iteração, a busca binária
reduz a quantidade de possíveis candidatos pela metade. Isso faz com que a velocidade de busca seja
extremamente rápida, já que, em tese, o algoritmo implementa uma heurística que elimina a necessidade de
investigar porções do vetor cuja busca seria infrutífera. Observe o código-fonte a seguir que implementa a
busca binária.
LinhaCódigo
01
02
03
04
05
06
07
08
09
10
11
12
13
int buscaBinaria(int arranjo
, int i, int f, int chave)
{
if (f >= i)
{
int meio = i + (f – i)/2;
if (arranjo
meio
== chave)
return meio;
if (arranjo
meio
> chave)
return buscaBinaria(arranjo, i, meio-1, chave);
return buscaBinaria(arranjo, meio+1, f, chave);
}
return -1;
}
Nesse contexto responda:
a) Caso a chave de busca seja um valor que esteja ausente dentro do arranjo, qual é o valor que a função
buscaBinaria() retornará?
b) Para que essa busca funcione, o arranjo precisa, necessariamente, estar ordenado? Se sim, explique o
motivo.
c) Para que essa busca seja rápida, é preciso aplicar ela em um arranjo estático? Se sim, explique o motivo.
d) Imagine que essa função precisa ser invocada dentro da função main() de um programa em C. Dessa
forma, escreva a linha de código (apenas uma linha) que invocaria essa função para realizar a busca em um
arranjo denominado VET, que possui 10 elementos, e que a chave de busca é igual a 15.
Sua resposta deve ser enviada contendo a resposta para os quatro itens descritos acima.
IMPORTANTE:
1. Acesse o link do vídeo que o professor da disciplina gravou com orientações para ajudá-lo nesse processo
de criação e desenvolvimento. O acesso deverá ser realizado em: MATERIAL DA DISCIPLINA.
Processing math: 100%
2. Responda à atividade seguindo como roteiro os tópicos elencados anteriormente.
3. A entrega deve ser feita exclusivamente por meio do Formulário de entrega da atividade MAPA disponível
no material da disciplina. Envie em formato doc, docx ou pdf.
4. Antes de enviar sua atividade, certifique-se de que respondeu a todas as perguntas e realize uma
cuidadosa correção ortográfica.
5. Após o envio não são permitas alterações, ou modificações. Logo, você tem apenas uma chance de enviar
o arquivo corretamente. Revise bem antes de enviar!
6. Lembre-se que evidências de cópias de materiais, incluindo de outros acadêmicos, sem devidas
referências serão inquestionavelmente zeradas. As citações e referências, mesmo que do livro da disciplina,
devem ser realizadas conforme normas da Instituição de Ensino.
7. Não são permitidas correções parciais no decorrer do módulo, ou seja, o famoso: “professor veja se minha
atividade está certa?”. Isso invalida seu processo avaliativo. Lembre-se que a interpretação da atividade
também faz parte da avaliação.
8. Procure sanar suas dúvidas junto a mediação em tempo hábil sobre o conteúdo exigido na atividade, de
modo que consiga realizar sua participação.
9. Atenção ao prazo de entrega, evite envio de atividade em cima do prazo. Você pode ter algum problema
com internet, computador, software etc. e os prazos não serão flexibilizados, mesmo em caso de
comprovação.
Bons estudos!
Em caso de dúvidas, encaminhar mensagem ao seu Professor(a) Mediador(a).