A sorting algorithm is an algorithm that puts elements of a list in a certain order. The most-used orders are numerical order and lexicographical order. Efficient sorting is important for optimizing the use of other algorithms (such as search and merge algorithms) which require input data to be in sorted lists; it is also often useful for canonicalizing data and for producing human-readable output.
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
Sorting Algorithms
1. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Algoritmos de Ordenação
Análise das Estratégias Merge Sort e Quick Sort
Michel Alves dos Santos
Universidade Federal de Alagoas, Campus A. C. Simões
Tabuleiro do Martins - Maceió - AL, CEP: 57072-970
Centro de Pesquisa em Matemática Computacional
Docente Responsável: Prof. Dr. Thales Vieira
19 de Setembro 2011
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
2. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Sumário
Tópicos Centrais da Explanação
Aleatoriedade e Aplicações Cotidianas;
Métodos de Geração de Números Aleatórios;
Números Aleatórios e Algoritmos de Ordenação;
O Algoritmo de Ordenação Merge Sort;
O Algoritmo de Ordenação Quick Sort;
Resultados Obtidos & Conclusões.
Primeiramente iremos falar um pouco sobre aleatoriedade e
mostrar a relação que a mesma possui com o trabalho vigente.
Iremos finalizar nossa explanação apresentando alguns resultados
obtidos através da avaliação dos algoritmos propostos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
3. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Sumário
Tópicos Centrais da Explanação
Aleatoriedade e Aplicações Cotidianas;
Métodos de Geração de Números Aleatórios;
Números Aleatórios e Algoritmos de Ordenação;
O Algoritmo de Ordenação Merge Sort;
O Algoritmo de Ordenação Quick Sort;
Resultados Obtidos & Conclusões.
Primeiramente iremos falar um pouco sobre aleatoriedade e
mostrar a relação que a mesma possui com o trabalho vigente.
Iremos finalizar nossa explanação apresentando alguns resultados
obtidos através da avaliação dos algoritmos propostos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
4. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Sumário
Tópicos Centrais da Explanação
Aleatoriedade e Aplicações Cotidianas;
Métodos de Geração de Números Aleatórios;
Números Aleatórios e Algoritmos de Ordenação;
O Algoritmo de Ordenação Merge Sort;
O Algoritmo de Ordenação Quick Sort;
Resultados Obtidos & Conclusões.
Primeiramente iremos falar um pouco sobre aleatoriedade e
mostrar a relação que a mesma possui com o trabalho vigente.
Iremos finalizar nossa explanação apresentando alguns resultados
obtidos através da avaliação dos algoritmos propostos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
5. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Sumário
Tópicos Centrais da Explanação
Aleatoriedade e Aplicações Cotidianas;
Métodos de Geração de Números Aleatórios;
Números Aleatórios e Algoritmos de Ordenação;
O Algoritmo de Ordenação Merge Sort;
O Algoritmo de Ordenação Quick Sort;
Resultados Obtidos & Conclusões.
Primeiramente iremos falar um pouco sobre aleatoriedade e
mostrar a relação que a mesma possui com o trabalho vigente.
Iremos finalizar nossa explanação apresentando alguns resultados
obtidos através da avaliação dos algoritmos propostos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
6. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Sumário
Tópicos Centrais da Explanação
Aleatoriedade e Aplicações Cotidianas;
Métodos de Geração de Números Aleatórios;
Números Aleatórios e Algoritmos de Ordenação;
O Algoritmo de Ordenação Merge Sort;
O Algoritmo de Ordenação Quick Sort;
Resultados Obtidos & Conclusões.
Primeiramente iremos falar um pouco sobre aleatoriedade e
mostrar a relação que a mesma possui com o trabalho vigente.
Iremos finalizar nossa explanação apresentando alguns resultados
obtidos através da avaliação dos algoritmos propostos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
7. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Sumário
Tópicos Centrais da Explanação
Aleatoriedade e Aplicações Cotidianas;
Métodos de Geração de Números Aleatórios;
Números Aleatórios e Algoritmos de Ordenação;
O Algoritmo de Ordenação Merge Sort;
O Algoritmo de Ordenação Quick Sort;
Resultados Obtidos & Conclusões.
Primeiramente iremos falar um pouco sobre aleatoriedade e
mostrar a relação que a mesma possui com o trabalho vigente.
Iremos finalizar nossa explanação apresentando alguns resultados
obtidos através da avaliação dos algoritmos propostos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
8. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Sumário
Tópicos Centrais da Explanação
Aleatoriedade e Aplicações Cotidianas;
Métodos de Geração de Números Aleatórios;
Números Aleatórios e Algoritmos de Ordenação;
O Algoritmo de Ordenação Merge Sort;
O Algoritmo de Ordenação Quick Sort;
Resultados Obtidos & Conclusões.
Primeiramente iremos falar um pouco sobre aleatoriedade e
mostrar a relação que a mesma possui com o trabalho vigente.
Iremos finalizar nossa explanação apresentando alguns resultados
obtidos através da avaliação dos algoritmos propostos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
9. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Sumário
Tópicos Centrais da Explanação
Aleatoriedade e Aplicações Cotidianas;
Métodos de Geração de Números Aleatórios;
Números Aleatórios e Algoritmos de Ordenação;
O Algoritmo de Ordenação Merge Sort;
O Algoritmo de Ordenação Quick Sort;
Resultados Obtidos & Conclusões.
Primeiramente iremos falar um pouco sobre aleatoriedade e
mostrar a relação que a mesma possui com o trabalho vigente.
Iremos finalizar nossa explanação apresentando alguns resultados
obtidos através da avaliação dos algoritmos propostos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
10. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Sumário
Tópicos Centrais da Explanação
Aleatoriedade e Aplicações Cotidianas;
Métodos de Geração de Números Aleatórios;
Números Aleatórios e Algoritmos de Ordenação;
O Algoritmo de Ordenação Merge Sort;
O Algoritmo de Ordenação Quick Sort;
Resultados Obtidos & Conclusões.
Primeiramente iremos falar um pouco sobre aleatoriedade e
mostrar a relação que a mesma possui com o trabalho vigente.
Iremos finalizar nossa explanação apresentando alguns resultados
obtidos através da avaliação dos algoritmos propostos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
11. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Aleatoriedade e Aplicações Cotidianas
Geradores de Números Aleatórios
True Random Number Generators [TRNG].
Pseudo-Random Number Generators [PRNG].
Figura: O emprego de TRNGs é mais adequado as loterias, jogos e segurança
digital, enquanto os PRNGs são largamente utilizados em simulações e modelagem
computacional [Análise Visual, Simulação de Infecção Viral, Algoritmos Evolutivos,
etc.]
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
12. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Aleatoriedade e Aplicações Cotidianas
Geradores de Números Aleatórios
True Random Number Generators [TRNG].
Pseudo-Random Number Generators [PRNG].
Figura: O emprego de TRNGs é mais adequado as loterias, jogos e segurança
digital, enquanto os PRNGs são largamente utilizados em simulações e modelagem
computacional [Análise Visual, Simulação de Infecção Viral, Algoritmos Evolutivos,
etc.]
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
13. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Aleatoriedade e Aplicações Cotidianas
Geradores de Números Aleatórios
True Random Number Generators [TRNG].
Pseudo-Random Number Generators [PRNG].
Figura: O emprego de TRNGs é mais adequado as loterias, jogos e segurança
digital, enquanto os PRNGs são largamente utilizados em simulações e modelagem
computacional [Análise Visual, Simulação de Infecção Viral, Algoritmos Evolutivos,
etc.]
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
14. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Aleatoriedade e Aplicações Cotidianas
Eficiência dos Geradores de Números
True Random Number Generators [TRNG].
Pseudo-Random Number Generators [PRNG].
Característica Pseudo-Random Number Generator True Random Number Generator
Eficiência Excelente Pobre
Determinismo Determinístico Não-determinístico
Periodicidade Periódico Aperiódico
Tabela: Tabela comparativa das categorias de gerador de números aleatórios que
leva em consideração a eficiência, o determinismo e a periodicidade.
Aplicações Gerador Recomendado
Loterias, Jogos, Segurança, etc. TRNG
Simulação e Modelagem PRNG
Tabela: Tabela comparativa das categorias de gerador de números aleatórios e suas
possíveis áreas de emprego.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
15. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Aleatoriedade e Aplicações Cotidianas
Eficiência dos Geradores de Números
True Random Number Generators [TRNG].
Pseudo-Random Number Generators [PRNG].
Característica Pseudo-Random Number Generator True Random Number Generator
Eficiência Excelente Pobre
Determinismo Determinístico Não-determinístico
Periodicidade Periódico Aperiódico
Tabela: Tabela comparativa das categorias de gerador de números aleatórios que
leva em consideração a eficiência, o determinismo e a periodicidade.
Aplicações Gerador Recomendado
Loterias, Jogos, Segurança, etc. TRNG
Simulação e Modelagem PRNG
Tabela: Tabela comparativa das categorias de gerador de números aleatórios e suas
possíveis áreas de emprego.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
16. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Aleatoriedade e Aplicações Cotidianas
Eficiência dos Geradores de Números
True Random Number Generators [TRNG].
Pseudo-Random Number Generators [PRNG].
Característica Pseudo-Random Number Generator True Random Number Generator
Eficiência Excelente Pobre
Determinismo Determinístico Não-determinístico
Periodicidade Periódico Aperiódico
Tabela: Tabela comparativa das categorias de gerador de números aleatórios que
leva em consideração a eficiência, o determinismo e a periodicidade.
Aplicações Gerador Recomendado
Loterias, Jogos, Segurança, etc. TRNG
Simulação e Modelagem PRNG
Tabela: Tabela comparativa das categorias de gerador de números aleatórios e suas
possíveis áreas de emprego.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
17. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Aleatoriedade e Aplicações Cotidianas
Eficiência dos Geradores de Números
True Random Number Generators [TRNG].
Pseudo-Random Number Generators [PRNG].
Característica Pseudo-Random Number Generator True Random Number Generator
Eficiência Excelente Pobre
Determinismo Determinístico Não-determinístico
Periodicidade Periódico Aperiódico
Tabela: Tabela comparativa das categorias de gerador de números aleatórios que
leva em consideração a eficiência, o determinismo e a periodicidade.
Aplicações Gerador Recomendado
Loterias, Jogos, Segurança, etc. TRNG
Simulação e Modelagem PRNG
Tabela: Tabela comparativa das categorias de gerador de números aleatórios e suas
possíveis áreas de emprego.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
18. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Métodos de Geração de Números Aleatórios
Métodos Comumente Encontrados
Método Congruencial Linear;
Método de Deslocamento R250;
Método de Deslocamento Mersenne Twistter.
Figura: Os números aleatórios são necessários em cálculo numérico, quando não devem existir 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 mesmas sejam independentes
e em criptografia [3]. Abaixo uma tabela com os períodos de alguns métodos de geração de números aleatórios.
Gerador Periodicidade Tipo
Linear Congruential Generator [glibc - gcc] 232
Congruente Linear
Linear Congruential Generator [MMIX by Donald Knuth] 264
Congruente Linear
R250 2250
− 1 Deslocamento de Registro
Mersenne Twister 219937
− 1 Deslocamento de Registro
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
19. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Métodos de Geração de Números Aleatórios
Métodos Comumente Encontrados
Método Congruencial Linear;
Método de Deslocamento R250;
Método de Deslocamento Mersenne Twistter.
Figura: Os números aleatórios são necessários em cálculo numérico, quando não devem existir 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 mesmas sejam independentes
e em criptografia [3]. Abaixo uma tabela com os períodos de alguns métodos de geração de números aleatórios.
Gerador Periodicidade Tipo
Linear Congruential Generator [glibc - gcc] 232
Congruente Linear
Linear Congruential Generator [MMIX by Donald Knuth] 264
Congruente Linear
R250 2250
− 1 Deslocamento de Registro
Mersenne Twister 219937
− 1 Deslocamento de Registro
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
20. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Métodos de Geração de Números Aleatórios
Métodos Comumente Encontrados
Método Congruencial Linear;
Método de Deslocamento R250;
Método de Deslocamento Mersenne Twistter.
Figura: Os números aleatórios são necessários em cálculo numérico, quando não devem existir 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 mesmas sejam independentes
e em criptografia [3]. Abaixo uma tabela com os períodos de alguns métodos de geração de números aleatórios.
Gerador Periodicidade Tipo
Linear Congruential Generator [glibc - gcc] 232
Congruente Linear
Linear Congruential Generator [MMIX by Donald Knuth] 264
Congruente Linear
R250 2250
− 1 Deslocamento de Registro
Mersenne Twister 219937
− 1 Deslocamento de Registro
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
21. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Métodos de Geração de Números Aleatórios
Métodos Comumente Encontrados
Método Congruencial Linear;
Método de Deslocamento R250;
Método de Deslocamento Mersenne Twistter.
Figura: Os números aleatórios são necessários em cálculo numérico, quando não devem existir 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 mesmas sejam independentes
e em criptografia [3]. Abaixo uma tabela com os períodos de alguns métodos de geração de números aleatórios.
Gerador Periodicidade Tipo
Linear Congruential Generator [glibc - gcc] 232
Congruente Linear
Linear Congruential Generator [MMIX by Donald Knuth] 264
Congruente Linear
R250 2250
− 1 Deslocamento de Registro
Mersenne Twister 219937
− 1 Deslocamento de Registro
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
22. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Números Aleatórios e Algoritmos de Ordenação
Geração de Números Aleatórios e Algoritmos
de Ordenação
Por que até o presente momento falamos sobre geração de
números aleatórios?
Fizemos isso por um simples motivo!
Posteriormente iremos testar os limites teóricos das estratégias de
ordenação e para verificar a robustez das mesmas, os números
empregados devem possuir natureza e origem ‘aleatórias’!
Aos conjuntos de números que serão obtidos e testados
daremos o nome de Aglomerados Numéricos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
23. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Números Aleatórios e Algoritmos de Ordenação
Geração de Números Aleatórios e Algoritmos
de Ordenação
Por que até o presente momento falamos sobre geração de
números aleatórios?
Fizemos isso por um simples motivo!
Posteriormente iremos testar os limites teóricos das estratégias de
ordenação e para verificar a robustez das mesmas, os números
empregados devem possuir natureza e origem ‘aleatórias’!
Aos conjuntos de números que serão obtidos e testados
daremos o nome de Aglomerados Numéricos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
24. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Números Aleatórios e Algoritmos de Ordenação
Geração de Números Aleatórios e Algoritmos
de Ordenação
Por que até o presente momento falamos sobre geração de
números aleatórios?
Fizemos isso por um simples motivo!
Posteriormente iremos testar os limites teóricos das estratégias de
ordenação e para verificar a robustez das mesmas, os números
empregados devem possuir natureza e origem ‘aleatórias’!
Aos conjuntos de números que serão obtidos e testados
daremos o nome de Aglomerados Numéricos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
25. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Números Aleatórios e Algoritmos de Ordenação
Geração de Números Aleatórios e Algoritmos
de Ordenação
Por que até o presente momento falamos sobre geração de
números aleatórios?
Fizemos isso por um simples motivo!
Posteriormente iremos testar os limites teóricos das estratégias de
ordenação e para verificar a robustez das mesmas, os números
empregados devem possuir natureza e origem ‘aleatórias’!
Aos conjuntos de números que serão obtidos e testados
daremos o nome de Aglomerados Numéricos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
26. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Números Aleatórios e Algoritmos de Ordenação
Geração de Números Aleatórios e Algoritmos
de Ordenação
Por que até o presente momento falamos sobre geração de
números aleatórios?
Fizemos isso por um simples motivo!
Posteriormente iremos testar os limites teóricos das estratégias de
ordenação e para verificar a robustez das mesmas, os números
empregados devem possuir natureza e origem ‘aleatórias’!
Aos conjuntos de números que serão obtidos e testados
daremos o nome de Aglomerados Numéricos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
27. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Algoritmo criado por von Neumann.
Complexidade Operacional: O(n · log n).
Complexidade Espacial: O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Dividir, Conquistar, Combinar.
John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 de
fevereiro de 1957 (Washington, D.C.- EUA)
Desvantagem: Alto consumo de memória, devido a
série de chamadas recursivas.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
28. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Algoritmo criado por von Neumann.
Complexidade Operacional: O(n · log n).
Complexidade Espacial: O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Dividir, Conquistar, Combinar.
John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 de
fevereiro de 1957 (Washington, D.C.- EUA)
Desvantagem: Alto consumo de memória, devido a
série de chamadas recursivas.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
29. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Algoritmo criado por von Neumann.
Complexidade Operacional: O(n · log n).
Complexidade Espacial: O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Dividir, Conquistar, Combinar.
John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 de
fevereiro de 1957 (Washington, D.C.- EUA)
Desvantagem: Alto consumo de memória, devido a
série de chamadas recursivas.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
30. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Algoritmo criado por von Neumann.
Complexidade Operacional: O(n · log n).
Complexidade Espacial: O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Dividir, Conquistar, Combinar.
John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 de
fevereiro de 1957 (Washington, D.C.- EUA)
Desvantagem: Alto consumo de memória, devido a
série de chamadas recursivas.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
31. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Algoritmo criado por von Neumann.
Complexidade Operacional: O(n · log n).
Complexidade Espacial: O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Dividir, Conquistar, Combinar.
John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 de
fevereiro de 1957 (Washington, D.C.- EUA)
Desvantagem: Alto consumo de memória, devido a
série de chamadas recursivas.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
32. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Algoritmo criado por von Neumann.
Complexidade Operacional: O(n · log n).
Complexidade Espacial: O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Dividir, Conquistar, Combinar.
John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 de
fevereiro de 1957 (Washington, D.C.- EUA)
Desvantagem: Alto consumo de memória, devido a
série de chamadas recursivas.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
33. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Algoritmo criado por von Neumann.
Complexidade Operacional: O(n · log n).
Complexidade Espacial: O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Dividir, Conquistar, Combinar.
John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 de
fevereiro de 1957 (Washington, D.C.- EUA)
Desvantagem: Alto consumo de memória, devido a
série de chamadas recursivas.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
34. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Algoritmo criado por von Neumann.
Complexidade Operacional: O(n · log n).
Complexidade Espacial: O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Dividir, Conquistar, Combinar.
John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 de
fevereiro de 1957 (Washington, D.C.- EUA)
Desvantagem: Alto consumo de memória, devido a
série de chamadas recursivas.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
35. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Observe as fases de divisão e combinação dessa estratégia.
Exemplo das fases de execução do Merge Sort.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
36. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Observe as fases de divisão e combinação dessa estratégia.
Exemplo das fases de execução do Merge Sort.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
37. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Ordenação por Intercalação
Observe as fases de divisão e combinação dessa estratégia.
Exemplo das fases de execução do Merge Sort.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
38. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Função de Particionamento
§ ¤
1 /∗∗
2 ∗ Merge Sort i s an O( n l o g n ) comparison −based a l g o r i t h m .
3 ∗/
4 v o i d MergeSort ( MyVector& ev , i n t B e g i n L i s t , i n t EndList )
5 {
6 i f ( B e g i n L i s t < EndList − 1)
7 {
8 i n t Middle = ( B e g i n L i s t + EndList ) /2;
9 MergeSort ( ev , B e g i n L i s t , Middle ) ;
10 MergeSort ( ev , Middle , EndList ) ;
11 Merges ( ev , B e g i n L i s t , Middle , EndList ) ;
12 }
13 }
¦ ¥
Repare bem nos passos da ‘divisão e conquista’ aplicados a esse método.
A seguir exibiremos a estrutura da função de intercalação Merges.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
39. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Função de Particionamento
§ ¤
1 /∗∗
2 ∗ Merge Sort i s an O( n l o g n ) comparison −based a l g o r i t h m .
3 ∗/
4 v o i d MergeSort ( MyVector& ev , i n t B e g i n L i s t , i n t EndList )
5 {
6 i f ( B e g i n L i s t < EndList − 1)
7 {
8 i n t Middle = ( B e g i n L i s t + EndList ) /2;
9 MergeSort ( ev , B e g i n L i s t , Middle ) ;
10 MergeSort ( ev , Middle , EndList ) ;
11 Merges ( ev , B e g i n L i s t , Middle , EndList ) ;
12 }
13 }
¦ ¥
Repare bem nos passos da ‘divisão e conquista’ aplicados a esse método.
A seguir exibiremos a estrutura da função de intercalação Merges.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
40. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Função de Particionamento
§ ¤
1 /∗∗
2 ∗ Merge Sort i s an O( n l o g n ) comparison −based a l g o r i t h m .
3 ∗/
4 v o i d MergeSort ( MyVector& ev , i n t B e g i n L i s t , i n t EndList )
5 {
6 i f ( B e g i n L i s t < EndList − 1)
7 {
8 i n t Middle = ( B e g i n L i s t + EndList ) /2;
9 MergeSort ( ev , B e g i n L i s t , Middle ) ;
10 MergeSort ( ev , Middle , EndList ) ;
11 Merges ( ev , B e g i n L i s t , Middle , EndList ) ;
12 }
13 }
¦ ¥
Repare bem nos passos da ‘divisão e conquista’ aplicados a esse método.
A seguir exibiremos a estrutura da função de intercalação Merges.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
41. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Merge Sort
Merge Sort - Função de Intercalação
§ ¤
1 /∗∗
2 ∗ Method that performs the c o l l a t i o n of l i s t s .
3 ∗∗/
4 void Merges ( MyVector & ev , i n t BeginList , i n t Middle , i n t EndList )
5 {
6 i n t i , j , k ; MyVector w;
7 w. r e s i z e ( EndList − B e g i n L i s t ) ;
8
9 i = B e g i n L i s t ; j = Middle ; k = 0;
10
11 while ( i < Middle && j < EndList )
12 {
13 i f ( ev [ i ] <= ev [ j ] ) w[ k++] = ev [ i ++];
14 e l s e w[ k++] = ev [ j ++];
15 }
16
17 while ( i < Middle ) { w[ k++] = ev [ i ++]; }
18 while ( j < EndList ) { w[ k++] = ev [ j ++]; }
19
20 f o r ( i = B e g i n L i s t ; i < EndList ; ++i ) ev [ i ] = w[ i−B e g i n L i s t ] ;
21
22 w. c l e a r () ;
23 }
¦ ¥
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
42. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Algoritmo criado por Charles Hoare.
Complexidade Operacional: O(n · log n) e O(n2).
Complexidade Espacial: O(log n) e O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Particionar e Recuperar.
Sir Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
Algoritmo de ordenação não-estável 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.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
43. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Algoritmo criado por Charles Hoare.
Complexidade Operacional: O(n · log n) e O(n2).
Complexidade Espacial: O(log n) e O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Particionar e Recuperar.
Sir Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
Algoritmo de ordenação não-estável 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.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
44. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Algoritmo criado por Charles Hoare.
Complexidade Operacional: O(n · log n) e O(n2).
Complexidade Espacial: O(log n) e O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Particionar e Recuperar.
Sir Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
Algoritmo de ordenação não-estável 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.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
45. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Algoritmo criado por Charles Hoare.
Complexidade Operacional: O(n · log n) e O(n2).
Complexidade Espacial: O(log n) e O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Particionar e Recuperar.
Sir Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
Algoritmo de ordenação não-estável 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.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
46. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Algoritmo criado por Charles Hoare.
Complexidade Operacional: O(n · log n) e O(n2).
Complexidade Espacial: O(log n) e O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Particionar e Recuperar.
Sir Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
Algoritmo de ordenação não-estável 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.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
47. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Algoritmo criado por Charles Hoare.
Complexidade Operacional: O(n · log n) e O(n2).
Complexidade Espacial: O(log n) e O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Particionar e Recuperar.
Sir Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
Algoritmo de ordenação não-estável 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.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
48. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Algoritmo criado por Charles Hoare.
Complexidade Operacional: O(n · log n) e O(n2).
Complexidade Espacial: O(log n) e O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Particionar e Recuperar.
Sir Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
Algoritmo de ordenação não-estável 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.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
49. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Algoritmo criado por Charles Hoare.
Complexidade Operacional: O(n · log n) e O(n2).
Complexidade Espacial: O(log n) e O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Particionar e Recuperar.
Sir Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
Algoritmo de ordenação não-estável 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.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
50. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Algoritmo criado por Charles Hoare.
Complexidade Operacional: O(n · log n) e O(n2).
Complexidade Espacial: O(log n) e O(n).
Algoritmo do tipo “Dividir para Conquistar”.
Idéia Básica → Particionar e Recuperar.
Sir Charles Antony Richard Hoare. 11 de janeiro de 1934 (Colombo – Sri Lanka)
Algoritmo de ordenação não-estável 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.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
51. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Exemplo das fases de execução do Quick Sort
Particionamento e Recuperação – melhor caso e caso médio
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
52. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Exemplo das fases de execução do Quick Sort
Particionamento e Recuperação – melhor caso e caso médio
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
53. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida
Exemplo das fases de execução do Quick Sort
Particionamento e Recuperação – melhor caso e caso médio
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
54. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida - Pior Caso
O pior caso para o Quick Sort com pivoteamento
periférico 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
log n, pois a mesma não se encontra balanceada.
Finalmente sua complexidade será dada por N · (N − 1)/2, ou seja,
O(N2
)
Exemplo das fases de execução do Quick Sort - Pior Caso
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
55. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida - Pior Caso
O pior caso para o Quick Sort com pivoteamento
periférico 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
log n, pois a mesma não se encontra balanceada.
Finalmente sua complexidade será dada por N · (N − 1)/2, ou seja,
O(N2
)
Exemplo das fases de execução do Quick Sort - Pior Caso
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
56. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida - Pior Caso
O pior caso para o Quick Sort com pivoteamento
periférico 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
log n, pois a mesma não se encontra balanceada.
Finalmente sua complexidade será dada por N · (N − 1)/2, ou seja,
O(N2
)
Exemplo das fases de execução do Quick Sort - Pior Caso
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
57. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida - Pior Caso
O pior caso para o Quick Sort com pivoteamento
periférico 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
log n, pois a mesma não se encontra balanceada.
Finalmente sua complexidade será dada por N · (N − 1)/2, ou seja,
O(N2
)
Exemplo das fases de execução do Quick Sort - Pior Caso
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
58. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida - Pior Caso
O pior caso para o Quick Sort com pivoteamento
periférico 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
log n, pois a mesma não se encontra balanceada.
Finalmente sua complexidade será dada por N · (N − 1)/2, ou seja,
O(N2
)
Exemplo das fases de execução do Quick Sort - Pior Caso
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
59. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Ordenação Rápida - Pior Caso
O pior caso para o Quick Sort com pivoteamento
periférico 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
log n, pois a mesma não se encontra balanceada.
Finalmente sua complexidade será dada por N · (N − 1)/2, ou seja,
O(N2
)
Exemplo das fases de execução do Quick Sort - Pior Caso
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
60. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Pivoteamento Central
§ ¤
1 void QuickSort ( MyVector& ev , i n t BeginList , i n t EndList )
2 {
3 i n t i , j ; ElementVector c , t ;
4
5 i f ( B e g i n L i s t < EndList )
6 {
7 c = ev [ ( B e g i n L i s t + EndList ) / 2 ] ;
8 i = B e g i n L i s t ; j = EndList ;
9
10 while ( i <= j )
11 {
12 while ( ev [ i ] < c ) { ++i ; }
13 while ( c < ev [ j ] ) { −−j ; }
14
15 i f ( i <= j )
16 {
17 t = ev [ i ] , ev [ i ] = ev [ j ] , ev [ j ] = t ;
18 ++i , −−j ;
19 }
20 }
21
22 QuickSort ( ev , BeginList , j ) ;
23 QuickSort ( ev , i , EndList ) ;
24 }
25 }
¦ ¥
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
61. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
O Algoritmo de Ordenação Quick Sort
Quick Sort - Pivoteamento Periférico
§ ¤
1 void QSort ( MyVector& ev , i n t l e f t , i n t r i g h t )
2 {
3 i n t new_right ;
4 i f ( r i g h t > l e f t )
5 {
6 new_right = P a r t i t i o n ( ev , l e f t , r i g h t ) ;
7 QSort ( ev , l e f t , new_right − 1 ) ;
8 QSort ( ev , new_right + 1 , r i g h t ) ;
9 }
10 return ;
11 }
¦ ¥
§ ¤
1 i n t P a r t i t i o n ( MyVector& ev , i n t l e f t , i n t r i g h t )
2 {
3 r e g i s t e r i n t i , j ; i = l e f t ;
4
5 f o r ( j = l e f t + 1; j <= r i g h t ; j++)
6 {
7 i f ( ev [ j ] < ev [ l e f t ] ) { ++i ; ev . swap ( i , j ) ; }
8 }
9
10 ev . swap ( l e f t , i ) ;
11 return i ;
12 }
¦ ¥
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
62. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos
Até Onde Avançamos
A seguir iremos apresentar alguns resultados obtidos através da
implementação de uma ferramenta que verifica o número de
instruções executadas em aglomerados numéricos aleatórios,
crescentes e decrescentes.
A ferramenta possui as seguintes funcionalidades
Geração de aglomerado numérico aleatório;
Escolha da distribuição para geração do aglomerado numérico;
Escolha do método ou estratégia de ordenação.
Vamos aos resultados!
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
63. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos
Até Onde Avançamos
A seguir iremos apresentar alguns resultados obtidos através da
implementação de uma ferramenta que verifica o número de
instruções executadas em aglomerados numéricos aleatórios,
crescentes e decrescentes.
A ferramenta possui as seguintes funcionalidades
Geração de aglomerado numérico aleatório;
Escolha da distribuição para geração do aglomerado numérico;
Escolha do método ou estratégia de ordenação.
Vamos aos resultados!
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
64. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos
Até Onde Avançamos
A seguir iremos apresentar alguns resultados obtidos através da
implementação de uma ferramenta que verifica o número de
instruções executadas em aglomerados numéricos aleatórios,
crescentes e decrescentes.
A ferramenta possui as seguintes funcionalidades
Geração de aglomerado numérico aleatório;
Escolha da distribuição para geração do aglomerado numérico;
Escolha do método ou estratégia de ordenação.
Vamos aos resultados!
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
65. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos
Até Onde Avançamos
A seguir iremos apresentar alguns resultados obtidos através da
implementação de uma ferramenta que verifica o número de
instruções executadas em aglomerados numéricos aleatórios,
crescentes e decrescentes.
A ferramenta possui as seguintes funcionalidades
Geração de aglomerado numérico aleatório;
Escolha da distribuição para geração do aglomerado numérico;
Escolha do método ou estratégia de ordenação.
Vamos aos resultados!
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
66. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos
Até Onde Avançamos
A seguir iremos apresentar alguns resultados obtidos através da
implementação de uma ferramenta que verifica o número de
instruções executadas em aglomerados numéricos aleatórios,
crescentes e decrescentes.
A ferramenta possui as seguintes funcionalidades
Geração de aglomerado numérico aleatório;
Escolha da distribuição para geração do aglomerado numérico;
Escolha do método ou estratégia de ordenação.
Vamos aos resultados!
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
67. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos
Até Onde Avançamos
A seguir iremos apresentar alguns resultados obtidos através da
implementação de uma ferramenta que verifica o número de
instruções executadas em aglomerados numéricos aleatórios,
crescentes e decrescentes.
A ferramenta possui as seguintes funcionalidades
Geração de aglomerado numérico aleatório;
Escolha da distribuição para geração do aglomerado numérico;
Escolha do método ou estratégia de ordenação.
Vamos aos resultados!
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
68. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos
Até Onde Avançamos
A seguir iremos apresentar alguns resultados obtidos através da
implementação de uma ferramenta que verifica o número de
instruções executadas em aglomerados numéricos aleatórios,
crescentes e decrescentes.
A ferramenta possui as seguintes funcionalidades
Geração de aglomerado numérico aleatório;
Escolha da distribuição para geração do aglomerado numérico;
Escolha do método ou estratégia de ordenação.
Vamos aos resultados!
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
69. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Algoritmos
Algoritmos Avaliados
Os seguintes algoritmos foram implementados e avaliados confrontando
suas respectivas complexidades teóricas e suas aplicações práticas:
Bubble Sort
Gnome Sort
Shaker Sort
Comb Sort
Insertion Sort
Selection Sort
Shell Sort
Heap Sort
Quick Sort
Merge Sort
Para cada execução de um determinado algoritmo são exibidas as
seguintes informações:
Número de Iterações;
Número de Comparações;
Número de Inversões;
Tempo de Execução em Segundos.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
70. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Bubble Sort
Ordenação Bolha
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
71. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Gnome Sort
Ordenação dos ‘Anões de Jardim’
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
72. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Shaker Sort
Ordenação Chacoalhadeira
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
73. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Comb Sort
Ordenação ‘Pente’
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
74. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Insertion Sort
Ordenação por Inserção
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
75. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Selection Sort
Ordenação por Seleção
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
76. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Shell Sort
Ordenação ‘Concha’
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
77. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Heap Sort
Ordenação por ‘Amontoamento’
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
78. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Quick Sort
Ordenação Rápida com Pivoteamento Central
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
79. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Merge Sort
Ordenação por Intercalação
Ordenação realizada sobre aglomerados numéricos com 1000, 10000 e 100000 números.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
80. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Resultados Obtidos: Quadro de Classificação
Analisando o Quadro de Classificação
Classificação
Algoritmo Tempo
Bubble 166.785s
Gnome 158.188s
Shaker 143.156s
Comb 142.328s
Insertion 81.765s
Selection 68.204s
Shell 1.281s
Heap 1.235s
Quick 1.234s
Merge 1.375s Bubble Gnome Shaker Comb Insertion Selection Shell Heap Quick Merge
050100150
Algoritmos
Bubble
Gnome
Shaker
Comb
Insertion
Selection
Shell
Heap
Quick
Merge
Tempos obtidos através da aplicação dos respectivos algoritmos em aglomerados numéricos aleatórios com
cardinalidade igual a 100000. Aglomerados compostos por números reais gerados através de congruência linear.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
81. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Conclusões
Balanço Geral da Análise
Algoritmos de ordenação quadráticos possuem baixa complexidade
de implementação porém pecam no quesito desempenho.
Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são as
melhores opções, porém devemos estar atentos aos casos
degenerativos.
Possíveis Extensões da Ferramenta
Ordenação Multi-Thread/Uso de Paralelismo;
Inserção de gráfico de desempenho acumulativo;
Ordenação Distribuída/Uso de Middleware;
Transformação dos algoritmos de ordenação em plugins.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
82. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Conclusões
Balanço Geral da Análise
Algoritmos de ordenação quadráticos possuem baixa complexidade
de implementação porém pecam no quesito desempenho.
Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são as
melhores opções, porém devemos estar atentos aos casos
degenerativos.
Possíveis Extensões da Ferramenta
Ordenação Multi-Thread/Uso de Paralelismo;
Inserção de gráfico de desempenho acumulativo;
Ordenação Distribuída/Uso de Middleware;
Transformação dos algoritmos de ordenação em plugins.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
83. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Conclusões
Balanço Geral da Análise
Algoritmos de ordenação quadráticos possuem baixa complexidade
de implementação porém pecam no quesito desempenho.
Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são as
melhores opções, porém devemos estar atentos aos casos
degenerativos.
Possíveis Extensões da Ferramenta
Ordenação Multi-Thread/Uso de Paralelismo;
Inserção de gráfico de desempenho acumulativo;
Ordenação Distribuída/Uso de Middleware;
Transformação dos algoritmos de ordenação em plugins.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
84. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Conclusões
Balanço Geral da Análise
Algoritmos de ordenação quadráticos possuem baixa complexidade
de implementação porém pecam no quesito desempenho.
Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são as
melhores opções, porém devemos estar atentos aos casos
degenerativos.
Possíveis Extensões da Ferramenta
Ordenação Multi-Thread/Uso de Paralelismo;
Inserção de gráfico de desempenho acumulativo;
Ordenação Distribuída/Uso de Middleware;
Transformação dos algoritmos de ordenação em plugins.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
85. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Conclusões
Balanço Geral da Análise
Algoritmos de ordenação quadráticos possuem baixa complexidade
de implementação porém pecam no quesito desempenho.
Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são as
melhores opções, porém devemos estar atentos aos casos
degenerativos.
Possíveis Extensões da Ferramenta
Ordenação Multi-Thread/Uso de Paralelismo;
Inserção de gráfico de desempenho acumulativo;
Ordenação Distribuída/Uso de Middleware;
Transformação dos algoritmos de ordenação em plugins.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
86. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Conclusões
Balanço Geral da Análise
Algoritmos de ordenação quadráticos possuem baixa complexidade
de implementação porém pecam no quesito desempenho.
Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são as
melhores opções, porém devemos estar atentos aos casos
degenerativos.
Possíveis Extensões da Ferramenta
Ordenação Multi-Thread/Uso de Paralelismo;
Inserção de gráfico de desempenho acumulativo;
Ordenação Distribuída/Uso de Middleware;
Transformação dos algoritmos de ordenação em plugins.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
87. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Conclusões
Balanço Geral da Análise
Algoritmos de ordenação quadráticos possuem baixa complexidade
de implementação porém pecam no quesito desempenho.
Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são as
melhores opções, porém devemos estar atentos aos casos
degenerativos.
Possíveis Extensões da Ferramenta
Ordenação Multi-Thread/Uso de Paralelismo;
Inserção de gráfico de desempenho acumulativo;
Ordenação Distribuída/Uso de Middleware;
Transformação dos algoritmos de ordenação em plugins.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
88. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Conclusões
Balanço Geral da Análise
Algoritmos de ordenação quadráticos possuem baixa complexidade
de implementação porém pecam no quesito desempenho.
Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são as
melhores opções, porém devemos estar atentos aos casos
degenerativos.
Possíveis Extensões da Ferramenta
Ordenação Multi-Thread/Uso de Paralelismo;
Inserção de gráfico de desempenho acumulativo;
Ordenação Distribuída/Uso de Middleware;
Transformação dos algoritmos de ordenação em plugins.
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
89. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Isso é Tudo Pessoal!
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação
90. Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões
Agradecimentos
Grato Pela Atenção!
Michel Alves - michel.mas@gmail.com
Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação