Questão nº 86
Questão de Auditoria em Tecnologia da Informação · FCC Prefeitura de São Luís 2018 (nº 86)
```
função teste (x,n,p[0..7]: inteiro): inteiro
var y, j, d: inteiro
y ← 0
d ← n - 1
enquanto (y <= d) faça
j ← (y + d) / 2
se (p[j] = x) então
retorne j
fim_se
se (p[j] < x)
então y ← j + 1
senão d ← j - 1
fim_se
fim_enquanto
retorne -1
fim_função
```
Se a função `teste` receber o valor 9 para x, 8 para n e o vetor [7, 10, 42, 88, 100, 123, 401, 502] para p, o retorno da função será
- A3
- B6
- C8
- D2
- E−1 (alternativa correta)
Resposta comentada
Gabarito Alternativa E
A função teste implementa uma busca binária, um algoritmo eficiente para encontrar um valor em uma lista ordenada. Ela funciona dividindo repetidamente o intervalo de busca pela metade, comparando o valor procurado com o elemento do meio e descartando a metade onde o valor não pode estar.
- (A) Incorreta: O valor 3 é o primeiro índice
jcalculado na busca (p[3] = 88), mas não é o valor procurado nem o resultado final. - (B) Incorreta: O índice 6 (
p[6] = 401) não é alcançado nem corresponde ao valor procurado. - (C) Incorreta: O valor 8 é o tamanho
ndo vetor, não um índice válido para retorno da função nem o resultado da busca. - (D) Incorreta: O valor 2 foi um valor intermediário de
d(limite superior do intervalo de busca), mas não o resultado final. - (E) Correta: A função retorna -1 porque o valor 9 não está presente no vetor
p. A busca binária funciona da seguinte forma:- Início:
y = 0,d = 7.j = (0+7)/2 = 3.p[3] = 88. Como88 > 9, o limite superiordse torna3-1 = 2. - Próxima iteração:
y = 0,d = 2.j = (0+2)/2 = 1.p[1] = 10. Como10 > 9, o limite superiordse torna1-1 = 0. - Próxima iteração:
y = 0,d = 0.j = (0+0)/2 = 0.p[0] = 7. Como7 < 9, o limite inferioryse torna0+1 = 1. - Próxima iteração:
y = 1,d = 0. A condição do laço(y <= d)(1 <= 0) é falsa, e o laço termina. - Como o elemento não foi encontrado, a função retorna -1. A armadilha aqui é que, embora o vetor esteja ordenado e
9esteja "entre"7e10, a busca binária só retorna o índice se o elemento for exatamente encontrado. Caso contrário, ela indica que não foi localizado.
- Início:
Fonte: FCC Prefeitura de São Luís 2018 Auditor Fiscal de Tributos I - Área Tecnologia da Informação (TI) (Caderno Tipo 001). Reproduzida para fins de estudo.