Pages

Questão EPO - Merge sort

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/

Um comentário:

Anônimo disse...

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

 
Copyright (c) 2010. Blogger templates by Bloggermint