Algoritmos de ordenação: integração com funções matemáticas
Gabarito: letra B. A técnica que mais favorece a integração com funções matemáticas é a modularização do código em conjunto com funções recursivas. Isso porque o Merge Sort — exemplo clássico de divisão e conquista — é naturalmente implementado com recursão, e a modularização permite que cada função represente uma transformação parcial dos dados, espelhando diretamente o conceito de função matemática (entrada → saída).
O enunciado destaca que o professor quer "relacionar o conteúdo a conceitos matemáticos" e usa o Merge Sort como exemplo. A recursão e a decomposição em subproblemas são a ponte natural para funções matemáticas, que também podem ser definidas recursivamente ou compostas por funções menores.
Técnica | Descrição | Relação com Funções Matemáticas | Exemplo no Merge Sort | Correta? |
|---|
Modularização com funções recursivas | Divisão do código em funções reutilizáveis e bem definidas, com chamadas recursivas | Cada função representa uma transformação parcial dos dados, refletindo diretamente a lógica de uma função matemática (entrada → saída) | mergeSort (recursivo) e merge (combinação)
| ✅ |
Modelagem orientada a objetos | Organização dos dados em atributos e métodos | Métodos podem ser vistos como funções, mas o foco não é a transformação pura dos dados | Não é a técnica mais natural para o Merge Sort | ❌ |
Paradigma funcional | Uso de funções anônimas e composição | Fortemente baseado em funções matemáticas, mas não é a técnica descrita no texto-base para o Merge Sort | Não é a técnica mais favorecida pelo enunciado | ❌ |
Programação orientada a eventos | Algoritmo como sequência de respostas a eventos | Associa funções a interações, não à transformação direta dos dados | Não se aplica ao Merge Sort | ❌ |
Alternativa A — ❌ Incorreta
A alternativa fala em "modelagem a partir de objetos" (orientação a objetos). Embora métodos possam ser vistos como funções, a orientação a objetos não é a técnica que favorece a integração direta com o conceito de função matemática. O foco está em atributos e métodos ligados a objetos, não na transformação pura dos dados como uma função matemática.
Alternativa B — ✅ Correta ⟵ GABARITO
Correta porque a modularização (divisão do código em funções reutilizáveis) combinada com funções recursivas permite que cada etapa do algoritmo seja vista como uma transformação parcial, exatamente como uma função matemática. No Merge Sort, a função mergeSort chama a si mesma recursivamente, e a função merge combina os resultados — cada uma é uma função que transforma dados. Isso reflete a ideia de função matemática: entrada → saída, sem efeitos colaterais.
Alternativa C — ❌ Incorreta
A alternativa cita o paradigma funcional com funções anônimas e composição. Embora o paradigma funcional seja fortemente baseado em funções matemáticas, a questão pergunta pela técnica de programação que o professor pode usar especificamente com o Merge Sort e que favorece a integração com funções matemáticas. O texto-base descreve o Merge Sort como um algoritmo recursivo e de divisão e conquista, não mencionando paradigma funcional. A modularização com recursão (alternativa B) é a abordagem mais direta e didática, independentemente do paradigma.
Alternativa D — ❌ Incorreta
A alternativa trata de programação orientada a eventos, onde funções são associadas a eventos específicos. Isso não se relaciona diretamente com funções matemáticas, pois o fluxo é dirigido por eventos, não por transformações sequenciais de dados. Não é a técnica que favorece a integração com conceitos matemáticos no contexto do Merge Sort.
Gabarito: letra B.