Your SlideShare is downloading. ×
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sorting Algorithms - Merge and Quick

176

Published on

In computer science, a merge sort (also commonly spelled mergesort) is an O(n log n) comparison-based sorting algorithm. Most implementations produce a stable sort, which means that the implementation …

In computer science, a merge sort (also commonly spelled mergesort) is an O(n log n) comparison-based sorting algorithm. Most implementations produce a stable sort, which means that the implementation preserves the input order of equal elements in the sorted output. Quicksort, or partition-exchange sort, is a sorting algorithm developed by Tony Hoare that, on average, makes O(n log n) comparisons to sort n items.

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
176
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Merge e Quick Michel Alves dos Santos Társis Wanderley Tolêdo Universidade Federal do Estado de Alagoas Instituto de Computação – Ciência da Computação Projeto e Análise de Algoritmos – Prof. Sílvio Chagas Novembro de 2009
  • 2. Slide 2 Geração de Números Aleatórios e Algoritmos de Ordenação True Random Number Generators Pseudo-Random Number Generators O emprego de TRNGs é mais adequado as loterias, jogos e segurança [geração de chaves criptografadas], enquanto os PRNGs são largamente utilizados em simulações e modelagem computacional [Análise Visual, Simulação Científica de Infecção Viral, Algoritmos Evolutivos, etc.] PAA - Projeto e Análise de Algoritmos
  • 3. Slide 3 Geração de Números Aleatórios e Algoritmos de Ordenação PAA - Projeto e Análise de Algoritmos • Método da Congruência Linear • Outros Métodos PRNG [R250 e Mersenne Twistter] • Distribuição, Ordem e o Efeito ‘Tartaruga’ Tabela com os períodos de alguns métodos de geração de números aleatórios. Os números aleatórios são necessários em cálculo numérico, quando é necessário que não existam correlações entre eventos independentes. São utilizados no método de Monte Carlo (determinação da área de um lago) [1], em dinâmica de partículas com dissipação [2] para garantir que as forças entre as partículas sejam independentes e em criptografia [3]. [2] [1] [3]
  • 4. Slide 4 Geração de Números Aleatórios e Algoritmos de Ordenação PAA - Projeto e Análise de Algoritmos MERGE SORT – ORDENAÇÃO POR INTERCALAÇÃO John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 de fevereiro de 1957 (Washington, D.C.- EUA) Algoritmo criado por von Neumann Complexidade de tempo : Θ(nlogn) Complexidade de espaço : Θ(n) Algoritmo do tipo “Dividir para Conquistar” Idéia Básica -> Dividir, Conquistar, Combinar Desvantagem : Alto consumo de memória, devido a série de chamadas recursivas.
  • 5. Slide 5 Geração de Números Aleatórios e Algoritmos de Ordenação PAA - Projeto e Análise de Algoritmos MERGE SORT – ORDENAÇÃO POR INTERCALAÇÃO 7 5 2 4 1 6 3 0 7 5 2 4 1 6 3 0 2 47 5 1 6 3 0 27 45 31 06 Dividir entrada 0 1 2 3 4 5 6 7 2 4 5 7 0 1 3 6 2 45 7 1 6 0 3 27 45 31 06 Combinar saída
  • 6. Slide 6 Geração de Números Aleatórios e Algoritmos de Ordenação PAA - Projeto e Análise de Algoritmos QUICK SORT – ORDENAÇÃO RÁPIDA • Algoritmo criado por Sir Charles Antony Richard Hoare, em 1960, publicado em 1962. • Algoritmo de ordenação não-estável • Complexidade de tempo : Θ(nlogn) [melhor caso/caso médio] • Complexidade de tempo : Θ(n^2) [no pior caso] • Complexidade de espaço : Θ(logn) [melhor caso e caso médio] • Complexidade de espaço : Θ(n) [pior caso] • Algoritmo do tipo “Dividir para Conquistar” • Idéia Básica -> Algoritmo do tipo dividir para conquistar baseado em particionamento porém sem a fase de combinação como o merge sort. Desvantagem : No pior caso se comporta como um algoritmo quadrático. Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
  • 7. Slide 7 Geração de Números Aleatórios e Algoritmos de Ordenação PAA - Projeto e Análise de Algoritmos QUICK SORT – ORDENAÇÃO RÁPIDA – Idéia Básica 13 81 92 43 65 31 57 26 75 0 Seleciona um Pivô 81 92 75 13 43 31 5726 0 13 81 9243 6531 5726 750 81 927513 4331 57260 65 65 quicksort quicksort 13 81 92 43 65 31 57 26 75 0 Executa Particionamento
  • 8. Slide 8 Geração de Números Aleatórios e Algoritmos de Ordenação PAA - Projeto e Análise de Algoritmos QUICK SORT – ORDENAÇÃO RÁPIDA - Particionamento Particionamento e Recuperação – melhor caso e caso médio
  • 9. Slide 9 Geração de Números Aleatórios e Algoritmos de Ordenação PAA - Projeto e Análise de Algoritmos QUICK SORT – ORDENAÇÃO RÁPIDA – Pior caso O pior caso para o Quick Sort ocorre quando a entrada já se encontra ordenada. Torna-se tão “eficiente” quanto um algoritmo quadrático convencional. Nesse caso a profundidade da árvore é de N-1 e não O(logn), pois a mesma não é balanceada. Finalmente sua complexidade será dada por N(N-1)/2, ou seja, O(N^2)
  • 10. Slide 10 Geração de Números Aleatórios e Algoritmos de Ordenação PAA - Projeto e Análise de Algoritmos QUADRO DE DESEMPENHO Quadro de avaliação entre os algoritmos de ordenação, levando em conta o número de comparações, trocas e outras operações necessárias a resolução do problema, realizadas em tempo constante. Abaixo visualizamos um quadro de complexidade média de implementação de alguns algoritmos de ordenação(excluindo linhas em branco e de comentários).
  • 11. Slide 11 Geração de Números Aleatórios e Algoritmos de Ordenação Screenshots & Testes – Bubble Versão 1 PAA - Projeto e Análise de Algoritmos
  • 12. Slide 12 Geração de Números Aleatórios e Algoritmos de Ordenação Screenshots & Testes – Bubble Versão 2 PAA - Projeto e Análise de Algoritmos
  • 13. Slide 13 Geração de Números Aleatórios e Algoritmos de Ordenação Screenshots & Testes – Shaker Sort PAA - Projeto e Análise de Algoritmos
  • 14. Slide 14 Geração de Números Aleatórios e Algoritmos de Ordenação Screenshots & Testes – Merge Sort PAA - Projeto e Análise de Algoritmos
  • 15. Slide 15 Geração de Números Aleatórios e Algoritmos de Ordenação • Screenshots & Testes – Quick Sort [Pivoteamento Central] PAA - Projeto e Análise de Algoritmos

×