ENADE 2019: O MergeSort é um método de ordenação que combina dois vetores ordenados

ENADE 2019: O MergeSort é um método de ordenação que combina dois vetores ordenados e cria um terceiro vetor maior também ordenado. O algori...
ENADE 2019: O MergeSort é um método de ordenação que combina dois vetores ordenados e cria um terceiro vetor maior também ordenado. O algoritmo abaixo apresenta essa ideia e combina os vetores a[lo..mid] e a[mid+1..hi] no vetor a[lo..hi].

public class MergeSort {
private static Comparable[] aux;
public static void merge(Comparable[] a, int lo, int mid, int hi) {
 int i = lo, j = mid+1;
 for (int k = lo; k <= hi; k++)
 aux[k] = a[k];
 for (int k = lo; k <= hi; k++) {
 if (i > mid)
 a[k] = aux[j++];
 else if (j > hi )
 a[k] = aux[i++];
 else if (aux[j].compareTo(aux[i]))
 a[k] = aux[j++];
 else
 a[k] = aux[i++];
 }
 }
public static void sort(Comparable[] a) {
 aux = new Comparable[a.length];
 sort(a, 0, a.length - 1);
}
private static void sort(Comparable[] a, int lo, int hi) {
 //implementação
}
}
SEDGEWICK, R.; WAYNE, K. Algorithms. 4. ed. Boston: Addison-Wesley, 2011 (adaptado).

Considerando o código apresentado, a implementação do protótipo do método sort da classe MergeSort é

a)
if (hi == lo)
 return;
int mid = lo + (hi - lo)/2;
sort(a, lo, mid);
sort(a, mid, hi);
merge(a, lo, mid, hi);

b)
if (hi > lo)
 return;
int mid = lo + (hi - lo)/2;
sort(a, lo, mid);
sort(a, mid, hi);
merge(a, lo, mid, hi);

c)
if (hi <= lo)
 return;
int mid = lo + (hi - lo)/2;
sort(a, lo, mid);
sort(a, mid, hi);
merge(a, lo, mid, hi);

d)
if (hi > lo)
 return;
int mid = lo + (hi - lo)/2;
sort(a, lo, mid);
sort(a, mid+1, hi);
merge(a, lo, mid, hi);

e)
if (hi <= lo)
 return;
int mid = lo + (hi - lo)/2;
sort(a, lo, mid);
sort(a, mid+1, hi);
merge(a, lo, mid, hi);

QUESTÃO ANTERIOR:
ENADE 2019: O esgotamento profissional, conhecido como Síndrome de Burnout, foi incluído na Classificação Internacional de Doenças da Organização Mundial da Saúde (OMS).

GABARITO:
e)
if (hi <= lo)
 return;
int mid = lo + (hi - lo)/2;
sort(a, lo, mid);
sort(a, mid+1, hi);
merge(a, lo, mid, hi);

PRÓXIMA QUESTÃO:
- ENADE 2019: Um estudo recente de pesquisadores mostrou que os algoritmos de inteligência artificial também podem ser usados para prever, pelo olhar de um indivíduo, se ele tem chances de sofrer um ataque cardíaco.

QUESTÃO DISPONÍVEL EM:
Prova do ENADE 2019 Engenharia da Computação com Gabarito

COMENTÁRIOS

Todas as Postagens Não foram encontradas postagens VEJA TODOS Leia Mais Resposta Cancelar resposta Deletar Por Home PAGINAS POSTS Veja todos RECOMENDADOS PARA VOCÊ Tudo Sobre ARQUIVOS BUSCAR TODOS OS POSTS Nenhuma postagem foi encontrada Voltar para Home Domingo Segunda Terça Quarta Quinta Sexta Sábado Dom Seg Ter Qua Qui Sex Sab Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Jan Fev Mar Abr Maio Jun Jul Ago Sep Out Nov Dez Agora mesmo 1 minuto atrás $$1$$ minutos agora 1 hora atrás $$1$$ horas atrás Ontem $$1$$ dias atrás $$1$$ semanas atrás mais de 5 semanas atrás Seguidores Seguir CONTEÚDO PREMIUM BLOQUEADO PASSO 1: Compartilhar em uma rede social PASSO 2: Clique no link na sua rede social Copiar todo o código Selecionar todo o código Todos os códigos foram copiados Não é possível copiar os códigos / textos, pressione [CTRL] + [C] para copiar Tabela de conteúdo