Estudo do algoritmo de ordenação Mergesort

Post on 16-Jun-2015

17.890 views 4 download

description

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

Transcript of Estudo do algoritmo de ordenação Mergesort

Mergesort

Gustavo BenícioLuiza Guerra

Priscila Rodrigues

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

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

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

IntroduçãoO principal objetivo da ordenação

é acessar os dados de forma mais eficiente.

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.

AnáliseO Mergesort é um algoritmo que

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

AnáliseTambém é chamado de

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

Ordenação de pontos organizados aleatoriamente

Bubblesort Heapsort Insertionsort

Mergesort Quicksort Selectionsort

Random Initial Order

Bubllesort Heapsort Insertionsort

Mergesort Quicksort Selectionsort

Nearly Sorted Initial Order

Bubllesort Heapsort Insertionsort

Mergesort Quicksort Selectionsort

Reversed Initial Order

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

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

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).

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.

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.

Vamos ao código

Código

Conclusão