MergeSort(i,f)
Dado um vetor A[i..f] de inteiros
Devolve A com os elementos em ordem crescente.
{
1 se (i-f > 0) então {
2 m <- (i+f) div 2;
3 MergeSort(i,m);
4 MergeSort(m,f);
5 para k de 1 até m-i+1 faça
6 b[k] <- A[i+k-1];
7 para l de m+1 até f faça
8 c[l-m] <- A[l];
9 k <- 1;
10 l <- 1;
11 b[m+1] <- ∞;
12 c[f-m+1] <- ∞;
13 para r de i até f faça
14 se ( b[k] < c[l] ) { A[r] <- b[k]; k <- k+1;}
15 senão {A[r] <- c[l]; l <- l+1;}
}
}
O número de comparações entre elementos do vetor A feitas por uma chamada de MergeSort(1,n),n>1 , é o número de comparações feitas recursivamente nas chamadas das linhas 3 e 4 mais o número de compações feitas na linha 14 ( pois o resultado de cada comparação determina um elemento de A), logo
Complete o tracejado:
a) 1 , 2
b) 3 , 4
c) 3 , 5
d) 5 , 7
e) NDA
Fonte:
http://anotacoesdeaula.wordpress.com/2011/02/10/bc1435-mergesort-solucao-exata-da-recorrencia/
Assinar:
Postar comentários (Atom)
Um comentário:
resposta certa letra B
obs: a resposta ja esta no enunciado por engano!onde se le 3 e 4 , era pra estar assim ----e----!
Postar um comentário