• Matéria: Informática
  • Autor: danielamartinsp5959
  • Perguntado 3 anos atrás

Você sabia que durante o processo de busca de dados em um arranjo linear é possível "cortar caminho" para deixar de vasculhar regiões do vetor que provavelmente não contenham a resposta para a busca? Quando se realiza a busca binária, pode ser muito mais rápido encontrar a posição de um elemento em um arranjo, ou mesmo, dizer se o elemento está ausente no vetor. OLIVEIRA, Pietro Martins de; LEON, Rogério de. Estrutura de Dados II. Maringá-PR, Unicesumar, 2019. Observe o pseudocódigo a seguir:

//Função de Busca Binária
int BuscaBinaria(int vec[], int arg, int tam){
int menor, maior, meio;
menor = 0;
maior = tam-1;
while (menor <= maior){
meio = (menor + maior)/2;
if (arg == vec[meio]){
return(meio);
}
if(arg < vec[meio]){
maior = meio - 1;
}
else {
menor = meio + 1;
}
}
return(-1);
}

Com base no código-fonte apresentado acima, avalie as afirmações a seguir:

I. A fórmula para identificar a posição do meio do arranjo está incorreta no corpo da função BuscaBinaria() acima. II. Em caso de elemento ausente, este algoritmo irá retornar o valor inteiro -1. III. Este algoritmo poderia ser implementado de forma recursiva. É correto o que se afirma em:

Alternativas
Alternativa 1:
I, apenas. Alternativa 2:
I e II, apenas. Alternativa 3:
I e III, apenas. Alternativa 4:
II e III, apenas. Alternativa 5:
I, II e III

Respostas

respondido por: lhlauravera
0

A função de BuscaBinaria() descrita nessa tarefa, retorna o valor inteiro -1, em caso de que não encontre o elemento no vetor.  Este algoritmo poderia ser implementado de forma recursiva.  A alternativa 5 é a resposta certa.

Busca binária

A busca binária é um algoritmo eficiente para encontrar um elemento em uma lista ordenada de elementos. Ele funciona dividindo repetidamente a parte da lista que poderia conter o item pela metade, até que as localizações possíveis sejam reduzidas a apenas uma.

Notem que é uma tarefa principal  repetida varias vezes ate achar o elemento dentro de um vetor, ele pode ser implementado recursivamente, que tem como condição de parada se achar o elemneto ou se não achar retorna -1.

Este algoritmo é tambem conhecido como algoritmo de Divisão e Conquista resultando em tempo de execução O(log n), sendo n o tamanho do vetor.

Supondo que tenhamos o vetor A. O vetor A tem cinco elementos.

A = [10,3,50,60,7]

Definindo as variavels de acordo com o algoritmo na tarefa, temos as variables,

menor = 0

tam = 5

maior = 4

meio = 2  

A[2] é o valor do meio do vetor, no caso é 50. Logo a fórmula para identificar a posição do meio do arranjo está correta.

Se quiser aprofundar no algoritmo de busqueda binaria, pode visitar https://brainly.com.br/tarefa/26079129

#SPJ2

respondido por: sayuriitosilva
0

Sabendo dos conceitos de busca binária, pode-se afirmar que realizando a programação correta, temos que:

  • para a função de BuscaBinaria() a qual é descrita na atividade, o valor inteiro retorna a -1 (caso não encontre o elemento desejado no vetor).
  • Ademais, o algoritmo pode ser implementado de forma recursiva (processo de repetição).

Portanto, conclui-se que alternativa correta que deve ser assinalada é a alternativa 5 ( II e III, apenas.)

O que é busca binária?

A busca binária ou pesquisa binária é um algoritmo que sempre busca em que vetores que segue o paradigma de divisão. Ademais, a busca parte do pressuposto de que o vetor está ordenado e que realiza sucessivas divisões de busca comparando o elemento buscado com o elemento no meio do vetor.

Saiba mais sobre busca binária em;

brainly.com.br/tarefa/1072771

#SPJ1

Anexos:
Perguntas similares