Procura

Algoritmos e estrutura de dadosAlgoritmos de busca


EXERCÍCIOS - Exercício 11

  • (COMVEST UFAM 2016)

O mergesort é um algoritmo de ordenação do tipo dividir-para-conquistar. Sua ideia básica consiste em dividir o problema em vários subproblemas, e resolver esses subproblemas por meio da recursividade e, em seguida,após todos os subproblemas terem sido resolvidos,ocorre a conquista, que é a união das resoluções dos subproblemas. O algoritmo mergesort, apresentado em seguida, está codificado em C/C++.Esse algoritmo ordena o vetor de inteiros a[p],..., a[r](onde, p<r) usando um vetor auxiliar b[p],..., b[r].O vetor a[ ] é dividido recursivamente ao meio em duas instâncias menores, que são ordenadas e então colocadas

juntas, ordenando todo o vetor. No código estão faltando as linhas que fazem a divisão por recursão (linhas 7 e 8) e as linhas que concretizam a fase de conquista, unindo todas as intercalações no vetor principal (linhas 11 e 12).

1. void mergesort( int a[], int p, int r)

2.   {

3. inti ,j,k,m;

4. if (r > p)

5.   {

6.   m = (r + p)/2;

7.   …

8.   …

9. for (i = m+1; i> p; i--) b[i-1] = a[i-1];

10. for (j = m; j < r; j++) b[r+m-j] = a[j+1];

11.  ...

12.  ...

13.  }

14.  }


As linhas 7,8, 11 e 12, que complementam o código do mergesort de maneira CORRETA, são:



A) 7.mergesort(a, p, m); 8.mergesort(a, m+1, r); … 11. for (k = p; k <= r; k++) 12.     a[k] = (b[i]<b[j]) ? b[i++] : b[j--];

B) 7.mergesort(a, p, m+1); 8.sort(a, m+1, r); ... 11. for (k = m; k <= r; k--) 12.     a[k] = (b[i]<b[j]) ? b[i++] : b[j--];

C) 7.mergesort(a, p, m); 8.mergesort(a, m+1, r); … 11. for (k = m; k <= m; k++) 12.     a[m] = (b[m]<b[j]) ? b[m++] : b[m--];

D) 7.sort(a, p, m); 8.sort(a, m+1, r); ... 11. for (k = p; k <= r; k++) 12.     a[k] = (b[i]<b[j]) ? b[i++] : b[j--];

E) 7.sort(a, p, m); 8.merge(a, m+1, r); ... 11. for (k = p; k <= r; k++) 12.    a[k] = (b[i]<b[j]) ? b[i++] : b[j--];


Próximo:
EXERCÍCIOS - Exercício 12

Vamos para o Anterior: Exercício 10

Tente Este: Exercício 38

Primeiro: Exercício 1

VOLTAR ao índice: Algoritmos e estrutura de dados






Cadastre-se e ganhe o primeiro capítulo do livro.
+
((ts_substr_ig=0.00ms))((ts_substr_id=2.96ms))((ts_substr_m2=0.00ms))((ts_substr_p2=0.69ms))((ts_substr_c=8.81ms))((ts_substr_im=0.87ms))
((total= 13ms))