35

Exercícios resolvidos: Algoritmos - Teoria e Prática - 3ª Ed. 2012

Thomas CormenIBSN: 9788535236996

Elaborado por professores e especialistas

Passo 1 de 4keyboard_arrow_downkeyboard_arrow_up

Devemos explicar como fazer coarsen do caso base do algoritmo P-Merge.

Passo 2 de 4keyboard_arrow_downkeyboard_arrow_up

Um método de fazer coarsen do algoritmo P-Merge é achar um modo eficiente de achar o elemento mediano num grande subarranjo, uma vez que P-Merge considera a variante que acha o elemento mediano de todos os elementos nos dois subarranjos.

Passo 3 de 4keyboard_arrow_downkeyboard_arrow_up

Um algoritmo possível é o seguinte:

P-Merge(T,p1,q1,p2,q2,A,p3)

//calcula os tamanhos dos subarranjos e guarda-os em n1 //e n2

n1 = q1-p1+1

n2 = q2-p2+1

//se a combinação dos arranjos é bem pequena, usa-se o //quicksort

if n1+n2 is very small then

quicksort(T,p1,q1,p2,q2,A,p3)

else

//se n1 for maior que n2 não há troca

if n1>n2 then

//no swap

else

if n1<n2 then

swap p1 with p2

swap q1 with q2

swap n1 with n2

if array is empty

return

else

if n1 = 0

return

else

r1 = [(p1+r1)/2]

p2 = BinarySearch(T(q1),T,p2)

q3 = p3+(q1-p1)+(q2-p2)

//armazena os elementos no arranjo de saída

A[q3] = T[q1]

//chamada paralela da função para juntar todo

//o arranjo em paralelo

P-Merge(T,p1,q1-1,p2,q2-1,A,p3)

P-Merge(T,p1,q1+1,p2,q2,A,q3+1)

end

Passo 4 de 4keyboard_arrow_downkeyboard_arrow_up

Portanto, .

Navegar por capítulo

Aprenda agora com os exercícios mais difíceis

R$29,90/mês

Cancele quando quiser, sem multa

Aproveite também

  • check Exercícios passo a passo
  • check Resumos por tópicos
  • check Disciplinas ilimitadas
  • check Ferramentas para otimizar seu tempo