⚡ BLACK FRIDAY
Garanta acesso total por apenas R$ 5,99/mês!
VER OFERTA

Dado um pseudocódigo de uma função chamada FN1:FN1 (V[], início, fi...

Dado um pseudocódigo de uma função chamada FN1:FN1 (V[], início, fim, e) i recebe o índice do meio entre início e fim se (v[i] = e) entao devolva o índice i # elem...


publicidade

Dado um pseudocódigo de uma função chamada FN1:

FN1 (V[], início, fim, e)

i recebe o índice do meio entre início e fim

se (v[i] = e) entao

devolva o índice i # elemento e encontrado

fimse

se (inicio = fim) entao

não encontrou o elemento procurado

senão

se (V[i] vem antes de e) então

faça a FN1 (V, i+1, fim, e)

senão

faça a FN1 (V, inicio, i-1, e)

fimse

fimse

Sobre o pseudocódigo foram feitas as seguintes afirmações:

I. FN1 é uma função é iterativa

II. Para FN1 devolver o índice i corretamente, o vetor V[ ] precisa estar ordenado.

III. Se o vetor V[ ] tiver 1024 elementos, podemos expressar que o número de suposições, no pior caso, como "o número de vezes que podemos reduzir pela metade, começando em n, até obter o valor 1, mais um" será de 11.

IV. A função matemática que representa a complexidade de FN1 é da ordem de log n.

Estão corretas

Analisando...
publicidade

🚀 Desbloqueie a explicação completa

Veja comentários detalhados e resoluções exclusivas para entender o gabarito desta questão.

Criar conta grátis
  • David Castilho
    David Castilho EQUIPE
    22/10/2026 • 04:01
    Neste problema temos um pseudocódigo que implementa uma busca no vetor, mais especificamente uma busca binária, que é um método de busca eficiente em vetores ordenados. Vamos analisar uma a uma as afirmações para entender melhor.

    A afirmação I diz que FN1 é uma função iterativa. Porém, analisando o pseudocódigo, vemos que FN1 chama a si mesma dentro da definição, ou seja, é uma função recursiva, não iterativa. Portanto, a afirmação I está incorreta.

    A afirmação II fala que o vetor precisa estar ordenado para FN1 devolver a posição correta. Isso é verdade, pois a busca binária só funciona em vetores ordenados: ela compara o elemento do meio para decidir se procura na metade à esquerda ou direita. Se o vetor não estiver ordenado, o método não funcionará corretamente.

    Na afirmação III, se o vetor tiver 1024 elementos, o número de vezes que podemos dividir o vetor pela metade até restar 1 elemento é log base 2 de 1024, que é 10. Somando "mais um" conforme a questão, temos 11, o que está correto.

    A afirmação IV diz que a complexidade da função é da ordem log n, o que condiz com o funcionamento da busca binária, pois cada chamada recursiva reduz o problema pela metade.

    Resumindo: a única afirmação incorreta é a I (FN1 não é iterativa, é recursiva). Assim, as corretas são II, III e IV.

    Portanto, o gabarito correto é a opção c).
publicidade
🍪

Utilizamos cookies e tecnologias semelhantes para aprimorar sua experiência de navegação. Política de Privacidade.