Considere o algoritmo iterativo mostrado a seguir, utilizado para determinar o maior e o menor elemento de um vetor A[1..n].
void MaxMin (int *A, int N) {
int Max = A[0];
int Min = A[N – 1];
for (int j = 1; j <= N – 1; j++)
if (A[j] > Max) Max = A[j];
else if (A[j] < Min) Min = A[j];
printf(“%d, %d”, Max, Min);
}
Nesse vetor, sabe-se que N elementos estão distribuídos aleatoriamente.
Considerando essas informações, elabore um texto sobre a análise de algoritmos, abordando, necessariamente, respostas para os seguintes tópicos:
1) a função de complexidade do número de comparações de elementos no melhor e no pior caso
2) Implemente um algoritmo recursivo MaxminRec, com complexidade menor que n * log(n) e que usa o paradigma “dividir para conquistar” para resolver o mesmo problema.
CONTEÚDO EXCLUSIVO
Confira nossos planos especiais de assinatura e desbloqueie agora!
CONTEÚDO EXCLUSIVO
Confira nossos planos especiais de assinatura e desbloqueie agora!
Ops! Esta questão ainda não tem resolução em vídeo.
Questões Relacionadas
Tendo em vista que o XP é um dos modelos de engenharia de software ágil indicado para times pequenos e médios que desenvolvam software baseado em requisitos, redija um texto dissertativo, citando e descrevendo três valores do XP [valor: 26,00 pontos]; três práticas do XP [valor: 25,00 pontos]; e três papéis dos membros da equipe XP [valor: 25,00 pontos].
Em projetos de software de médio e grande porte, é comum observar a degradação da arquitetura ao longo do tempo, que geralmente resulta em alto acoplamento, baixo reúso de código e dificuldade de manutenção. Em muitos casos, essa situação poderia ser evitada com a aplicação consciente dos princípios de design conhecidos como SOLID, os quais embasam a abordagem orientada a objetos para a criação de sistemas com maior qualidade estrutural, facilitando testes, refatorações e extensões. A aplicação correta desses princípios pode determinar a diferença entre um sistema escalável e sustentável e um código rígido e frágil.
Considerando que o fragmento de texto acima tenha caráter unicamente motivad…
O intercâmbio de dados entre aplicações é o processo de transmitir e receber informações entre sistemas distintos, permitindo que eles operem em conjunto e compartilhem dados de forma integrada. Esse processo é essencial em cenários onde diferentes aplicações precisam colaborar para fornecer uma experiência coesa ou uma visão unificada dos dados.
Dois dos principais formatos de dados utilizados atualmente são JSON (JavaScript Object Notation), formato leve e fácil de ler, amplamente usado em APIs RESTful; e o XML (Extensible Markup Language), mais verboso que o JSON, mas permite esquemas complexos, sendo comum em Web Services SOAP.
A seguir, é apresentado um fragmento de código em XML:
<p…



