19
Mergesort Gustavo Benício Luiza Guerra Priscila Rodrigues

Estudo do algoritmo de ordenação Mergesort

Embed Size (px)

DESCRIPTION

Estudo do algoritmo de ordenação mergesort, incluindo conceitos, vantagens e desvantagens do método, estudo de complexidade e exemplo prático.

Citation preview

Page 1: Estudo do algoritmo de ordenação Mergesort

Mergesort

Gustavo BenícioLuiza Guerra

Priscila Rodrigues

Page 2: Estudo do algoritmo de ordenação Mergesort

Tópicos abordadosIntroduçãoMotivaçãoAnálise do algoritmoComplexidade do algoritmoExemplo práticoConclusãoReferências

Page 3: Estudo do algoritmo de ordenação Mergesort

IntroduçãoOrdenação é o ato de colocar os

elementos dispostos em relação a uma ordem preestabelecida.

Page 4: Estudo do algoritmo de ordenação Mergesort

IntroduçãoO principal objetivo da ordenação

é acessar os dados de forma mais eficiente.

Page 5: Estudo do algoritmo de ordenação Mergesort

MotivaçãoO estudo do algoritmo

Mergesort possibilita a ordenação de dados quebrando o problema-chave em pedaços menores, organizando trechos de dados separados para em seguida, juntar os resultados formando um vetor ordenado.

Page 6: Estudo do algoritmo de ordenação Mergesort

AnáliseO Mergesort é um algoritmo que

se baseia no conceito “dividir para conquistar”:◦Divisão◦Conquista◦Combinação

Page 7: Estudo do algoritmo de ordenação Mergesort

AnáliseTambém é chamado de

“ordenação por mistura” e “fusão”.

Page 8: Estudo do algoritmo de ordenação Mergesort

Ordenação de pontos organizados aleatoriamente

Page 9: Estudo do algoritmo de ordenação Mergesort

Bubblesort Heapsort Insertionsort

Mergesort Quicksort Selectionsort

Random Initial Order

Page 10: Estudo do algoritmo de ordenação Mergesort

Bubllesort Heapsort Insertionsort

Mergesort Quicksort Selectionsort

Nearly Sorted Initial Order

Page 11: Estudo do algoritmo de ordenação Mergesort

Bubllesort Heapsort Insertionsort

Mergesort Quicksort Selectionsort

Reversed Initial Order

Page 12: Estudo do algoritmo de ordenação Mergesort

AnáliseVantagens:

◦É eficiente para ordenação externa◦Fácil implementação◦Recomendado para aplicações com

restrição de tempoDesvantagens:

◦Utiliza memória auxiliar◦Alto consumo de memória

Page 13: Estudo do algoritmo de ordenação Mergesort

Complexidade do algoritmoMelhor caso: nunca é necessário

trocar após as comparaçõesCaso médio: há necessidade de

trocas após as comparaçõesPior caso: sempre é necessário

efetuar a troca após as comparações

Page 14: Estudo do algoritmo de ordenação Mergesort

Complexidade do algoritmo

h = O(log n)

• A altura da árvore de execução pode ser definida por O(log n).• A quantidade de operações em cada nível da árvore de execução é definidapor O(n).• Logo, a complexidade do algoritmo para qualquer caso é O(n log n).

Page 15: Estudo do algoritmo de ordenação Mergesort

Complexidade do algoritmoA complexidade do mergesort é a

mesma para o pior, médio e melhor caso.

Independente da situação dos dados no vetor, o algoritmo irá sempre dividir e intercalar os dados.

Page 16: Estudo do algoritmo de ordenação Mergesort

O algoritmoAs 2 principais idéias do

algoritmo para melhoria são:◦Uma lista pequena executará menos

etapa para ordenar.◦Para construir uma lista ordenada a

partir de duas sub-listas, melhor que elas já estejam ordenadas.

Page 17: Estudo do algoritmo de ordenação Mergesort

Vamos ao código

Código

Page 18: Estudo do algoritmo de ordenação Mergesort

Conclusão