Estudo do algoritmo de ordenação Mergesort
-
Upload
luiza-guerra -
Category
Education
-
view
17.890 -
download
4
description
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
Referências Bibliográficashttp://www.sorting-algorithms.co
m/merge-sort
http://c2.com/cgi/wiki?MergeSorthttp://www.youtube.com/watch?v
=8TkoSS3lxO8&feature=relatedhttp://
en.wikipedia.org/wiki/Merge_sort