You are on page 1of 9

O Algoritmo de

Ordenação Estável
Mais Rápido do Oeste
Amanda de Souza – 11421BCC036
Hugo Gustavo Valin – 11421BCC008

Análise de Algoritmos – GBC052 2018-1


Merge Sort
• Para qualquer algoritmo de ordenação baseado em
comparação o melhor caso é w(nlog(n)).
• No merge sort, o pior caso é o(nlog(n)).
• O pior caso do merge sort é assintoticamente igual ao
melhor caso de qualquer outro algoritmo de ordenação
por comparação.
Merge Sort
• Baseado em Mesclagem:
 Combinar dois arrays ordenados para obter um array
ordenado maior.

Classificar Dividir em 2 Classificar Mesclar


Array metades as 2 metades resultados
MergeX
• Usa insertion sort para pequenos subarrays.

if(limiteSuperior <= limiteInferior + DESLOCAMENTO){


ordenacaoInsercao(subArray);
return;
}

DESLOCAMENTO = 7
 Divisão
 InsertionSort
 BuscaBinária
Análise da Relação de Recorrência
• No teorema mestre temos:

T n = αT(n/β) + f n com f(n) = Θ(nγ (log δ (n))

Se γ = 𝑙𝑜𝑔β α então T(n)~ Θ(nγ (log δ+1 (n))

• No merge sort normal:

M(n) = 2M(n/2) + (n1 (log 0 (n)) Custo do merge

M n ~ Θ(n1 (log1 (n))


Análise da Relação de Recorrência
• Objetivo: M(n) maior que n(log(n)), e para isso
precisamos que δ seja maior que 0.
• Modificação: depois de dividir e ter 2 subarrays de
tamanho n/2 cada, usamos busca binária para ordena-los.
• Na busca binária temos:
B(n) = O(log(n))
• Como a busca binária é feita para 2 arrays com tamanho
n/2, resultamos com custo n(log(n))
Análise da Relação de Recorrência
• Substituindo a alteração na Relação de Recorrência
original do merge sort

M(n) = 2M(n/2) + (n1 (log1 (n))


• Pelo teorema mestre equivalendo a:

M n = Θ(n1 (log1+1 (n))


Obrigado!