Seja uma função que realiza uma busca binária sobre um array de números inteiros ordenados. Não se sabe, em princípio,
se os números estão ordenados ascendente ou descendentemente. O cabeçalho dessa função é o seguinte:
int busca (int [ ] vet, int elem)
Isto é, a função busca recebe um array de números inteiros (vet) e um número inteiro (elem) como parâmetros, e retorna
um número inteiro. Caso exista em vet um inteiro igual a elem, a função retornará o índice desse inteiro no array; caso
contrário, a função retornará -1.
O algoritmo de busca binária produz um índice (ind) a cada iteração sobre o array, tendo em vista comparar o elemento
que se deseja procurar (elem) com o elemento vet [ ind ]. Isto é:
if ( vet [ ind ] == elem )
return ind;
No comando acima, diz-se que houve uma visita ao elemento vet [ ind ].
Admita que a função busca foi chamada por meio do comando a seguir:
int resp = busca (vet, 50);
Sabendo-se que os elementos visitados foram 54, 17, 33 e 50, nesta ordem, qual array foi passado como parâmetro para
a função busca?
Acerca de pesquisa de dados e de operações básicas sobre estruturas, julgue os itens que se seguem.
Na pesquisa binária, realiza-se a varredura de uma estrutura de dados desde o seu início até o final dessa estrutura, ou até que uma informação desejada seja encontratada.
Julgue o item subsequente a respeito de métodos de acesso.
A busca binária é mais eficiente do que a busca sequencial, uma vez que naquela o vetor que contém o valor a ser pesquisado está sempre ordenado pela chave de busca.
Dada uma coleção de n elementos ordenados por ordem crescente, pretende-se saber se um determinado elemento x existe
nessa coleção. Supondo que essa coleção está implementada como sendo um vetor a[0...n-1] de n elementos inteiros,
utilizando-se um algoritmo de pesquisa binária, o número de vezes que a comparação x==a[i] será executada, no pior caso, é
calculada por
Qual o algoritmo de busca que se baseia no princípio de
dividir os dados na posição central, testando o elemento
a ser encontrado com o elemento que está nessa posição
(central)? Considere que, caso o elemento sendo
buscado não seja o elemento central, então metade do
conjunto de dados já pode ser descartado.
O analista Jon está ministrando um treinamento sobre algoritmos
de busca e, durante a explicação sobre a busca binária em uma
lista ordenada de n elementos, ele discute a eficiência desse
algoritmo.
A complexidade de tempo correta que Jon deve apresentar para
a busca binária é a de: