Ao implementar um algoritmo que percorre uma matriz de registros 'dados' armazenada em memória row-major, qual…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Identificar o comportamento dos algoritmos no que diz respeito ao consumo de recursos como tempo de execução, espaço de memória e energia, entre outros.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Ao implementar um algoritmo que percorre uma matriz de registros 'dados' armazenada em memória row-major, qual ordem de iteração tipicamente melhora o desempenho do cache?
- A) Usar laço externo sobre linhas e laço interno sobre colunas (percorrer linha a linha).
- B) Usar um laço duplo percorrendo todos os elementos aleatoriamente.
- C) Percorrer a matriz em ordem reversa, da última linha para a primeira.
- D) Iterar colunas primeiro, depois linhas, para melhor desempenho.
- E) Utilizar acesso sempre sequencial à matriz completa antes de qualquer laço.
✅ Resposta correta: alternativa A
Resolução passo a passo
- Em memória row-major (ordem por linhas), os elementos de uma mesma linha ficam armazenados em posições de memória contíguas, uma após a outra, e a linha seguinte começa logo depois da anterior.
- Quando o laço externo percorre as linhas e o interno percorre as colunas, os acessos seguem exatamente a ordem em que os dados estão gravados na memória. Isso aproveita o princípio da localidade espacial: ao carregar um bloco (linha de cache) da memória, os elementos vizinhos que serão usados logo em seguida já estão no cache, reduzindo falhas de cache.
- Resolvendo por conta própria, a alternativa correta é a A, e ela coincide com o gabarito oficial.
- A alternativa B está errada, pois acessos aleatórios destroem a localidade espacial e aumentam as falhas de cache.
- A alternativa C está errada, pois a ordem reversa ainda percorre a memória de forma contínua, mas não é a ordem típica que melhora o cache; o que importa é a sequência ser a de armazenamento, e a reversa não é a ordem natural de row-major.
- A alternativa D está errada, pois percorrer colunas primeiro, em row-major, salta entre linhas e causa muitos acessos não contíguos, piorando o desempenho.
- A alternativa E está errada, pois não existe um 'acesso sequencial à matriz completa antes de qualquer laço'; essa frase não descreve um procedimento de iteração válido.
💡 Dica: Considere a ordem de acesso aos elementos da matriz.
Alternativa por alternativa
Percorrer elementos na mesma linha consecutivamente usa a localidade espacial do row-major, reduzindo faltas de cache e melhorando desempenho.
O aluno acredita que embaralhar os acessos ajuda a distribuir a carga na memória, sem perceber que isso elimina a localidade espacial.
O aluno associa a ordem reversa a uma otimização, sem considerar que ela não segue a disposição contígua dos dados em row-major.
O aluno supõe que a ordem colunas-linhas é mais eficiente por analogia com a leitura de tabelas, sem notar que em row-major as colunas de uma mesma linha estão contíguas.
Por que engana: Escolher a opção que sugere percorrer colunas primeiro, que pode resultar em um desempenho inferior devido ao acesso não sequencial à memória.
O aluno lê a palavra 'sequencial' como se bastasse ter acesso sequencial em algum momento, sem entender que o padrão de iteração dos laços é o que determina a localidade.
Raio-X da questão
ordem de iteração matriz
avaliacao
ordem de iteração matriz
Revisar conceitos de acesso a matrizes em memória row-major.
Escolher a opção que sugere percorrer colunas primeiro, que pode resultar em um desempenho inferior devido ao acesso não sequencial à memória.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Em um projeto de monitoramento de rios, uma boia computacional organiza leituras de sensores antes de enviá-las por…
- Uma biblioteca escolar recebeu caixas de livros doados para uma feira de troca. Para registrar os exemplares, a equipe…
- Um centro cultural público oferece inscrições on-line para atividades com critérios variados. Na oficina de teatro…
- Uma escola está testando dois protótipos de aplicativo para que estudantes consultem mudanças de sala, horários e…
- Uma secretaria municipal de educação está digitalizando pedidos de transporte escolar e de atendimento em contraturno…
- — O cartaz não pode sair duas vezes, pois a feira começa em uma hora — alertou a coordenadora do centro cultural. No…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
