Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FADURPE 2024
Algoritmos e Estrutura de Dados›Estrutura de Dados
Código
qg129608
Banca
FADURPE
Órgão
UFRPE
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação/Área Sistemas
Dados os índices i e j do elemento M[i,j], qual é o correspondente índice em A?
Ak = (i − 1) ∙ n + j − 1
Bk = i ∙ m + j − 1
Ck = j ∙ n + i ∙ m − 1
Dk = i ∙ (m − 1) + j
Ek = (i − 1) ∙ m + j − 1
Revelar gabarito e comentário▾
GabaritoE — k = (i − 1) ∙ m + j − 1
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Mapeamento Matriz → Vetor (Row-Major)
Gabarito: letra E. Para armazenar uma matriz M de n linhas e m colunas em um vetor A com indexação iniciando em 0, mantendo linhas contíguas, o índice k do elemento M[i,j] (com i e j começando em 1) é dado por:
A alternativa E é a única que reproduz essa fórmula.
A banca testa o entendimento de que o número de colunas (m) define o salto entre linhas, e não o número de linhas (n). A principal armadilha é trocar m por n ou usar i e j sem os devidos deslocamentos.
1Matriz M[n×m], índices i,j (base 1)
2Deslocamento de (i-1) linhas completas
3Cada linha tem m elementos
4Soma (j-1) posições na linha
5k = (i-1)·m + (j-1)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Usa o número de linhas n no lugar do número de colunas m: . Isso colocaria elementos de linhas diferentes em posições erradas.
Alternativa B — ❌ Incorreta
Começa com em vez de . Para i=1, j=1, resultaria em k = m (deveria ser 0).
Alternativa C — ❌ Incorreta
Mistura ambos os índices: . Não segue a lógica de varredura por linhas.
Alternativa D — ❌ Incorreta
Usa . Para i=1, j=1, resulta em k = (m-1)+1 = m (deveria ser 0). Além disso, não subtrai 1 de j.
Alternativa E — ✅ Correta ⟵ GABARITO
Exatamente . Corresponde ao deslocamento de (i-1) linhas completas (cada uma com m elementos) mais (j-1) posições dentro da linha.
PEGA ESSA DICA!
Memorize a fórmula genérica para armazenamento row-major com indexação base 0: , onde e são os índices iniciais da matriz (aqui ambos 1). A banca frequentemente troca linhas por colunas ou esquece de subtrair a base.