← Questões de Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados · CESPE/CEBRASPE · 2023

Questão comentada de Algoritmos e Estrutura de Dados

x = [1, 2, 3, 2, 1] m1 = 0 para (i = 1; i < 5; i = i + 1) m2 = i se (x[m1] < x[m2]) m1 = m2 fim se fim para imprime(m1) No pseudocódigo precedente, a função imprime(m1) mostrará, em tela, o valor

Gabarito: C

Essa questão cobra uma leitura simples de laço de repetição com comparação. O vetor x guarda os valores [1, 2, 3, 2, 1] e a variável m1 começa apontando para a posição 0, isto é, para o primeiro elemento. A cada volta do laço, o algoritmo coloca i em m2 e compara x[m1] com x[m2]. Se o valor novo for maior, m1 passa a apontar para essa nova posição. Na prática, o algoritmo está procurando o maior valor do vetor, guardando o índice dele. Primeiro, com i = 1, compara 1 com 2 e atualiza m1 para 1. Depois, com i = 2, compara 2 com 3 e atualiza m1 para 2. Nas próximas voltas, os valores 2 e 1 não superam 3, então nada muda. No fim, m1 continua valendo 2. Como o vetor usa indexação começando em 0, essa posição é a terceira casa do vetor, onde está o valor 3. Por isso, a função imprime(m1) mostra 2. A ideia aqui é bem clássica em algoritmos: varrer a estrutura inteira mantendo o melhor candidato até o momento. É o tipo de raciocínio que aparece muito em questões de máximo, mínimo e busca linear.

Continue treinando

Questões relacionadas