SlideShare uma empresa Scribd logo
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
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
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]
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.
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
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)
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
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
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)
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).
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
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
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
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
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

Mais conteúdo relacionado

PPTX
Linguagem de programacao
PPTX
Introdução ao matlab
PDF
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
PDF
Comparação Experimental de Algoritmos de Ordenação
PDF
Algoritmos Gulosos - Troco Mínimo
PDF
SXSW 2016 takeaways
PDF
The Physical Interface
Linguagem de programacao
Introdução ao matlab
Algoritmos e Programação: Funcionamento do computador. Conceito e definição d...
Comparação Experimental de Algoritmos de Ordenação
Algoritmos Gulosos - Troco Mínimo
SXSW 2016 takeaways
The Physical Interface

Semelhante a Sorting Algorithms - Merge and Quick (20)

PDF
Sorting Algorithms
PDF
Análise de desempenho de algoritmos de ordenação
PDF
SysSorting Professional
PDF
Análise de algoritmo
PDF
Aula 1 - Ordenação Interna - Seleção e Inserção.pdf
PPTX
Algoritmos de ordenação
PDF
Algorimos De Ordenação
PPTX
quick and merge sort estrutura de dados.pptx
PDF
Aula01- Algoritmos e Estruturas de dados 2
PDF
122172 1445
PDF
Tutorial aed iii 008 - algoritmo de ordenação heapsort
PDF
Análise empírica de algoritmos de ordenação
PDF
Análise de Algoritmos - Recursividade
PDF
SysSorting Professional - Presentation
PDF
Metodos de ordenação final
PDF
7082 texto do artigo-33807-2-10-20180903
PDF
(Ebook) projetos de algoritmos com implementações em pascal e c (nivio zivian...
PDF
(Ebook) projetos de algoritmos com implementações em pascal e c (nivio zivian...
PDF
170557670 pesquisa-e-ordenacao
Sorting Algorithms
Análise de desempenho de algoritmos de ordenação
SysSorting Professional
Análise de algoritmo
Aula 1 - Ordenação Interna - Seleção e Inserção.pdf
Algoritmos de ordenação
Algorimos De Ordenação
quick and merge sort estrutura de dados.pptx
Aula01- Algoritmos e Estruturas de dados 2
122172 1445
Tutorial aed iii 008 - algoritmo de ordenação heapsort
Análise empírica de algoritmos de ordenação
Análise de Algoritmos - Recursividade
SysSorting Professional - Presentation
Metodos de ordenação final
7082 texto do artigo-33807-2-10-20180903
(Ebook) projetos de algoritmos com implementações em pascal e c (nivio zivian...
(Ebook) projetos de algoritmos com implementações em pascal e c (nivio zivian...
170557670 pesquisa-e-ordenacao
Anúncio

Mais de Michel Alves (20)

PDF
Texture Synthesis: An Approach Based on GPU Use
PDF
Intelligent Transfer of Thematic Harmonic Color Palettes
PDF
A Framework for Harmonic Color Measures
PDF
Effectiveness of Image Quality Assessment Indexes
PDF
Introduction to Kernel Functions
PDF
About Perception and Hue Histograms in HSV Space
PDF
Color Harmonization - Results
PDF
Wave Simulation Using Perlin Noise
PDF
Similarity Maps Using SSIM Index
PDF
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
PDF
TMS - Schedule of Presentations and Reports
PDF
Month Presentations Schedule - March/2015 - LCG/UFRJ
PDF
Color Palettes in R
PDF
Sigmoid Curve Erf
PDF
Hue Wheel Prototype
PDF
Cosine Curve
PDF
Triangle Mesh Plot
PDF
Triangle Plot
PDF
Capacity-Constrained Point Distributions :: Video Slides
PDF
Capacity-Constrained Point Distributions :: Density Function Catalog
Texture Synthesis: An Approach Based on GPU Use
Intelligent Transfer of Thematic Harmonic Color Palettes
A Framework for Harmonic Color Measures
Effectiveness of Image Quality Assessment Indexes
Introduction to Kernel Functions
About Perception and Hue Histograms in HSV Space
Color Harmonization - Results
Wave Simulation Using Perlin Noise
Similarity Maps Using SSIM Index
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
TMS - Schedule of Presentations and Reports
Month Presentations Schedule - March/2015 - LCG/UFRJ
Color Palettes in R
Sigmoid Curve Erf
Hue Wheel Prototype
Cosine Curve
Triangle Mesh Plot
Triangle Plot
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Density Function Catalog
Anúncio

Último (20)

PDF
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPTX
Revolução Industrial - Aula Expositiva - 3U4.pptx
PPTX
Programa Nacional de Saúde do Adulto.pptx
PDF
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
PPTX
disciplulado curso preparatorio para novos
PPTX
Realismo e Naturalismo: Aluísio Azevedo.
PDF
Células Introdução para as aulas de EJA.
PPTX
brasilcolnia2-101027184359-phpapp02.pptx
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PDF
CARTÕES DIA DOS ESTUDANTES MORANGO DO AMOR.pdf
PPTX
norma regulamentadora numero vinte nr 20
PPTX
HISTÓRIA DO BRASIL - anos de Democracia.pptx
PPTX
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
PDF
BINGOS_DAS_PALAVRAS_bingo das palavras.pdf
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PDF
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PDF
Formação politica brasil_2017.pptx.pdf
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
Revolução Industrial - Aula Expositiva - 3U4.pptx
Programa Nacional de Saúde do Adulto.pptx
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
disciplulado curso preparatorio para novos
Realismo e Naturalismo: Aluísio Azevedo.
Células Introdução para as aulas de EJA.
brasilcolnia2-101027184359-phpapp02.pptx
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
CARTÕES DIA DOS ESTUDANTES MORANGO DO AMOR.pdf
norma regulamentadora numero vinte nr 20
HISTÓRIA DO BRASIL - anos de Democracia.pptx
Lição 8 EBD.pptxtudopossonaquelequemimfortalece
BINGOS_DAS_PALAVRAS_bingo das palavras.pdf
saeb_documentos_de_referencia_versao_1.0.pdf
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
INDÚSTRIA_ Histórico da industrialização.pptx
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
Formação politica brasil_2017.pptx.pdf

Sorting Algorithms - Merge and Quick

  • 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