Download - Sorting Algorithms

Transcript
Page 1: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Algoritmos de OrdenaçãoAnálise das Estratégias Merge Sort e Quick Sort

Michel Alves dos Santos

Universidade Federal de Alagoas, Campus A. C. SimõesTabuleiro do Martins - Maceió - AL, CEP: 57072-970Centro 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

Page 2: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Sumário

Tópicos Centrais da ExplanaçãoI Aleatoriedade e Aplicações Cotidianas;I Métodos de Geração de Números Aleatórios;I Números Aleatórios e Algoritmos de Ordenação;I O Algoritmo de Ordenação Merge Sort;I O Algoritmo de Ordenação Quick Sort;I Resultados Obtidos & Conclusões.

Primeiramente iremos falar um pouco sobre aleatoriedade emostrar a relação que a mesma possui com o trabalho vigente.

Iremos finalizar nossa explanação apresentando alguns resultadosobtidos através da avaliação dos algoritmos propostos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 3: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Sumário

Tópicos Centrais da ExplanaçãoI Aleatoriedade e Aplicações Cotidianas;I Métodos de Geração de Números Aleatórios;I Números Aleatórios e Algoritmos de Ordenação;I O Algoritmo de Ordenação Merge Sort;I O Algoritmo de Ordenação Quick Sort;I Resultados Obtidos & Conclusões.

Primeiramente iremos falar um pouco sobre aleatoriedade emostrar a relação que a mesma possui com o trabalho vigente.

Iremos finalizar nossa explanação apresentando alguns resultadosobtidos através da avaliação dos algoritmos propostos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 4: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Sumário

Tópicos Centrais da ExplanaçãoI Aleatoriedade e Aplicações Cotidianas;I Métodos de Geração de Números Aleatórios;I Números Aleatórios e Algoritmos de Ordenação;I O Algoritmo de Ordenação Merge Sort;I O Algoritmo de Ordenação Quick Sort;I Resultados Obtidos & Conclusões.

Primeiramente iremos falar um pouco sobre aleatoriedade emostrar a relação que a mesma possui com o trabalho vigente.

Iremos finalizar nossa explanação apresentando alguns resultadosobtidos através da avaliação dos algoritmos propostos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 5: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Sumário

Tópicos Centrais da ExplanaçãoI Aleatoriedade e Aplicações Cotidianas;I Métodos de Geração de Números Aleatórios;I Números Aleatórios e Algoritmos de Ordenação;I O Algoritmo de Ordenação Merge Sort;I O Algoritmo de Ordenação Quick Sort;I Resultados Obtidos & Conclusões.

Primeiramente iremos falar um pouco sobre aleatoriedade emostrar a relação que a mesma possui com o trabalho vigente.

Iremos finalizar nossa explanação apresentando alguns resultadosobtidos através da avaliação dos algoritmos propostos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 6: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Sumário

Tópicos Centrais da ExplanaçãoI Aleatoriedade e Aplicações Cotidianas;I Métodos de Geração de Números Aleatórios;I Números Aleatórios e Algoritmos de Ordenação;I O Algoritmo de Ordenação Merge Sort;I O Algoritmo de Ordenação Quick Sort;I Resultados Obtidos & Conclusões.

Primeiramente iremos falar um pouco sobre aleatoriedade emostrar a relação que a mesma possui com o trabalho vigente.

Iremos finalizar nossa explanação apresentando alguns resultadosobtidos através da avaliação dos algoritmos propostos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 7: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Sumário

Tópicos Centrais da ExplanaçãoI Aleatoriedade e Aplicações Cotidianas;I Métodos de Geração de Números Aleatórios;I Números Aleatórios e Algoritmos de Ordenação;I O Algoritmo de Ordenação Merge Sort;I O Algoritmo de Ordenação Quick Sort;I Resultados Obtidos & Conclusões.

Primeiramente iremos falar um pouco sobre aleatoriedade emostrar a relação que a mesma possui com o trabalho vigente.

Iremos finalizar nossa explanação apresentando alguns resultadosobtidos através da avaliação dos algoritmos propostos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 8: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Sumário

Tópicos Centrais da ExplanaçãoI Aleatoriedade e Aplicações Cotidianas;I Métodos de Geração de Números Aleatórios;I Números Aleatórios e Algoritmos de Ordenação;I O Algoritmo de Ordenação Merge Sort;I O Algoritmo de Ordenação Quick Sort;I Resultados Obtidos & Conclusões.

Primeiramente iremos falar um pouco sobre aleatoriedade emostrar a relação que a mesma possui com o trabalho vigente.

Iremos finalizar nossa explanação apresentando alguns resultadosobtidos através da avaliação dos algoritmos propostos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 9: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Sumário

Tópicos Centrais da ExplanaçãoI Aleatoriedade e Aplicações Cotidianas;I Métodos de Geração de Números Aleatórios;I Números Aleatórios e Algoritmos de Ordenação;I O Algoritmo de Ordenação Merge Sort;I O Algoritmo de Ordenação Quick Sort;I Resultados Obtidos & Conclusões.

Primeiramente iremos falar um pouco sobre aleatoriedade emostrar a relação que a mesma possui com o trabalho vigente.

Iremos finalizar nossa explanação apresentando alguns resultadosobtidos através da avaliação dos algoritmos propostos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 10: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Sumário

Tópicos Centrais da ExplanaçãoI Aleatoriedade e Aplicações Cotidianas;I Métodos de Geração de Números Aleatórios;I Números Aleatórios e Algoritmos de Ordenação;I O Algoritmo de Ordenação Merge Sort;I O Algoritmo de Ordenação Quick Sort;I Resultados Obtidos & Conclusões.

Primeiramente iremos falar um pouco sobre aleatoriedade emostrar a relação que a mesma possui com o trabalho vigente.

Iremos finalizar nossa explanação apresentando alguns resultadosobtidos através da avaliação dos algoritmos propostos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 11: Sorting Algorithms

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óriosI True Random Number Generators [TRNG].I Pseudo-Random Number Generators [PRNG].

Figura: O emprego de TRNGs é mais adequado as loterias, jogos e segurançadigital, enquanto os PRNGs são largamente utilizados em simulações e modelagemcomputacional [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

Page 12: Sorting Algorithms

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óriosI True Random Number Generators [TRNG].I Pseudo-Random Number Generators [PRNG].

Figura: O emprego de TRNGs é mais adequado as loterias, jogos e segurançadigital, enquanto os PRNGs são largamente utilizados em simulações e modelagemcomputacional [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

Page 13: Sorting Algorithms

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óriosI True Random Number Generators [TRNG].I Pseudo-Random Number Generators [PRNG].

Figura: O emprego de TRNGs é mais adequado as loterias, jogos e segurançadigital, enquanto os PRNGs são largamente utilizados em simulações e modelagemcomputacional [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

Page 14: Sorting Algorithms

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úmerosI True Random Number Generators [TRNG].I Pseudo-Random Number Generators [PRNG].

Característica Pseudo-Random Number Generator True Random Number GeneratorEficiência Excelente Pobre

Determinismo Determinístico Não-determinísticoPeriodicidade Periódico Aperiódico

Tabela: Tabela comparativa das categorias de gerador de números aleatórios queleva em consideração a eficiência, o determinismo e a periodicidade.

Aplicações Gerador RecomendadoLoterias, Jogos, Segurança, etc. TRNG

Simulação e Modelagem PRNG

Tabela: Tabela comparativa das categorias de gerador de números aleatórios e suaspossíveis áreas de emprego.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 15: Sorting Algorithms

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úmerosI True Random Number Generators [TRNG].I Pseudo-Random Number Generators [PRNG].

Característica Pseudo-Random Number Generator True Random Number GeneratorEficiência Excelente Pobre

Determinismo Determinístico Não-determinísticoPeriodicidade Periódico Aperiódico

Tabela: Tabela comparativa das categorias de gerador de números aleatórios queleva em consideração a eficiência, o determinismo e a periodicidade.

Aplicações Gerador RecomendadoLoterias, Jogos, Segurança, etc. TRNG

Simulação e Modelagem PRNG

Tabela: Tabela comparativa das categorias de gerador de números aleatórios e suaspossíveis áreas de emprego.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 16: Sorting Algorithms

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úmerosI True Random Number Generators [TRNG].I Pseudo-Random Number Generators [PRNG].

Característica Pseudo-Random Number Generator True Random Number GeneratorEficiência Excelente Pobre

Determinismo Determinístico Não-determinísticoPeriodicidade Periódico Aperiódico

Tabela: Tabela comparativa das categorias de gerador de números aleatórios queleva em consideração a eficiência, o determinismo e a periodicidade.

Aplicações Gerador RecomendadoLoterias, Jogos, Segurança, etc. TRNG

Simulação e Modelagem PRNG

Tabela: Tabela comparativa das categorias de gerador de números aleatórios e suaspossíveis áreas de emprego.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 17: Sorting Algorithms

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úmerosI True Random Number Generators [TRNG].I Pseudo-Random Number Generators [PRNG].

Característica Pseudo-Random Number Generator True Random Number GeneratorEficiência Excelente Pobre

Determinismo Determinístico Não-determinísticoPeriodicidade Periódico Aperiódico

Tabela: Tabela comparativa das categorias de gerador de números aleatórios queleva em consideração a eficiência, o determinismo e a periodicidade.

Aplicações Gerador RecomendadoLoterias, Jogos, Segurança, etc. TRNG

Simulação e Modelagem PRNG

Tabela: Tabela comparativa das categorias de gerador de números aleatórios e suaspossíveis áreas de emprego.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 18: Sorting Algorithms

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 EncontradosI Método Congruencial Linear;I Método de Deslocamento R250;I 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çõesentre 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 independentese em criptografia [3]. Abaixo uma tabela com os períodos de alguns métodos de geração de números aleatórios.

Gerador Periodicidade TipoLinear Congruential Generator [glibc - gcc] 232 Congruente Linear

Linear Congruential Generator [MMIX by Donald Knuth] 264 Congruente LinearR250 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

Page 19: Sorting Algorithms

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 EncontradosI Método Congruencial Linear;I Método de Deslocamento R250;I 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çõesentre 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 independentese em criptografia [3]. Abaixo uma tabela com os períodos de alguns métodos de geração de números aleatórios.

Gerador Periodicidade TipoLinear Congruential Generator [glibc - gcc] 232 Congruente Linear

Linear Congruential Generator [MMIX by Donald Knuth] 264 Congruente LinearR250 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

Page 20: Sorting Algorithms

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 EncontradosI Método Congruencial Linear;I Método de Deslocamento R250;I 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çõesentre 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 independentese em criptografia [3]. Abaixo uma tabela com os períodos de alguns métodos de geração de números aleatórios.

Gerador Periodicidade TipoLinear Congruential Generator [glibc - gcc] 232 Congruente Linear

Linear Congruential Generator [MMIX by Donald Knuth] 264 Congruente LinearR250 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

Page 21: Sorting Algorithms

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 EncontradosI Método Congruencial Linear;I Método de Deslocamento R250;I 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çõesentre 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 independentese em criptografia [3]. Abaixo uma tabela com os períodos de alguns métodos de geração de números aleatórios.

Gerador Periodicidade TipoLinear Congruential Generator [glibc - gcc] 232 Congruente Linear

Linear Congruential Generator [MMIX by Donald Knuth] 264 Congruente LinearR250 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

Page 22: Sorting Algorithms

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 Algoritmosde Ordenação

Por que até o presente momento falamos sobre geração denúmeros aleatórios?

Fizemos isso por um simples motivo!

Posteriormente iremos testar os limites teóricos das estratégias deordenação e para verificar a robustez das mesmas, os númerosempregados devem possuir natureza e origem ‘aleatórias’!

Aos conjuntos de números que serão obtidos e testadosdaremos o nome de Aglomerados Numéricos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 23: Sorting Algorithms

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 Algoritmosde Ordenação

Por que até o presente momento falamos sobre geração denúmeros aleatórios?

Fizemos isso por um simples motivo!

Posteriormente iremos testar os limites teóricos das estratégias deordenação e para verificar a robustez das mesmas, os númerosempregados devem possuir natureza e origem ‘aleatórias’!

Aos conjuntos de números que serão obtidos e testadosdaremos o nome de Aglomerados Numéricos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 24: Sorting Algorithms

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 Algoritmosde Ordenação

Por que até o presente momento falamos sobre geração denúmeros aleatórios?

Fizemos isso por um simples motivo!

Posteriormente iremos testar os limites teóricos das estratégias deordenação e para verificar a robustez das mesmas, os númerosempregados devem possuir natureza e origem ‘aleatórias’!

Aos conjuntos de números que serão obtidos e testadosdaremos o nome de Aglomerados Numéricos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 25: Sorting Algorithms

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 Algoritmosde Ordenação

Por que até o presente momento falamos sobre geração denúmeros aleatórios?

Fizemos isso por um simples motivo!

Posteriormente iremos testar os limites teóricos das estratégias deordenação e para verificar a robustez das mesmas, os númerosempregados devem possuir natureza e origem ‘aleatórias’!

Aos conjuntos de números que serão obtidos e testadosdaremos o nome de Aglomerados Numéricos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 26: Sorting Algorithms

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 Algoritmosde Ordenação

Por que até o presente momento falamos sobre geração denúmeros aleatórios?

Fizemos isso por um simples motivo!

Posteriormente iremos testar os limites teóricos das estratégias deordenação e para verificar a robustez das mesmas, os númerosempregados devem possuir natureza e origem ‘aleatórias’!

Aos conjuntos de números que serão obtidos e testadosdaremos o nome de Aglomerados Numéricos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 27: Sorting Algorithms

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

I Algoritmo criado por von Neumann.I Complexidade Operacional: O(n · log n).I Complexidade Espacial: O(n).I Algoritmo do tipo “Dividir para Conquistar”.I Idéia Básica → Dividir, Conquistar, Combinar.

John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 defevereiro de 1957 (Washington, D.C.- EUA)

Desvantagem: Alto consumo de memória, devido asérie de chamadas recursivas.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 28: Sorting Algorithms

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

I Algoritmo criado por von Neumann.I Complexidade Operacional: O(n · log n).I Complexidade Espacial: O(n).I Algoritmo do tipo “Dividir para Conquistar”.I Idéia Básica → Dividir, Conquistar, Combinar.

John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 defevereiro de 1957 (Washington, D.C.- EUA)

Desvantagem: Alto consumo de memória, devido asérie de chamadas recursivas.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 29: Sorting Algorithms

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

I Algoritmo criado por von Neumann.I Complexidade Operacional: O(n · log n).I Complexidade Espacial: O(n).I Algoritmo do tipo “Dividir para Conquistar”.I Idéia Básica → Dividir, Conquistar, Combinar.

John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 defevereiro de 1957 (Washington, D.C.- EUA)

Desvantagem: Alto consumo de memória, devido asérie de chamadas recursivas.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 30: Sorting Algorithms

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

I Algoritmo criado por von Neumann.I Complexidade Operacional: O(n · log n).I Complexidade Espacial: O(n).I Algoritmo do tipo “Dividir para Conquistar”.I Idéia Básica → Dividir, Conquistar, Combinar.

John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 defevereiro de 1957 (Washington, D.C.- EUA)

Desvantagem: Alto consumo de memória, devido asérie de chamadas recursivas.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 31: Sorting Algorithms

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

I Algoritmo criado por von Neumann.I Complexidade Operacional: O(n · log n).I Complexidade Espacial: O(n).I Algoritmo do tipo “Dividir para Conquistar”.I Idéia Básica → Dividir, Conquistar, Combinar.

John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 defevereiro de 1957 (Washington, D.C.- EUA)

Desvantagem: Alto consumo de memória, devido asérie de chamadas recursivas.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 32: Sorting Algorithms

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

I Algoritmo criado por von Neumann.I Complexidade Operacional: O(n · log n).I Complexidade Espacial: O(n).I Algoritmo do tipo “Dividir para Conquistar”.I Idéia Básica → Dividir, Conquistar, Combinar.

John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 defevereiro de 1957 (Washington, D.C.- EUA)

Desvantagem: Alto consumo de memória, devido asérie de chamadas recursivas.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 33: Sorting Algorithms

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

I Algoritmo criado por von Neumann.I Complexidade Operacional: O(n · log n).I Complexidade Espacial: O(n).I Algoritmo do tipo “Dividir para Conquistar”.I Idéia Básica → Dividir, Conquistar, Combinar.

John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 defevereiro de 1957 (Washington, D.C.- EUA)

Desvantagem: Alto consumo de memória, devido asérie de chamadas recursivas.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 34: Sorting Algorithms

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

I Algoritmo criado por von Neumann.I Complexidade Operacional: O(n · log n).I Complexidade Espacial: O(n).I Algoritmo do tipo “Dividir para Conquistar”.I Idéia Básica → Dividir, Conquistar, Combinar.

John von Neumann. 28 de dezembro de 1903 (Budapeste - Hungria) – 8 defevereiro de 1957 (Washington, D.C.- EUA)

Desvantagem: Alto consumo de memória, devido asérie de chamadas recursivas.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 35: Sorting Algorithms

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

Page 36: Sorting Algorithms

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

Page 37: Sorting Algorithms

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

Page 38: Sorting Algorithms

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 So r t i s an O(n l o g n ) compar i son−based a l g o r i t hm .3 ∗/4 vo i d MergeSort (MyVector& ev , i n t Beg i nL i s t , i n t EndL i s t )5 {6 i f ( B e g i n L i s t < EndL i s t − 1)7 {8 i n t Midd le = ( Beg i n L i s t + EndL i s t ) /2 ;9 MergeSort ( ev , Beg i nL i s t , Midd le ) ;10 MergeSort ( ev , Middle , EndL i s t ) ;11 Merges ( ev , Beg i nL i s t , Middle , EndL i s t ) ;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

Page 39: Sorting Algorithms

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 So r t i s an O(n l o g n ) compar i son−based a l g o r i t hm .3 ∗/4 vo i d MergeSort (MyVector& ev , i n t Beg i nL i s t , i n t EndL i s t )5 {6 i f ( B e g i n L i s t < EndL i s t − 1)7 {8 i n t Midd le = ( Beg i n L i s t + EndL i s t ) /2 ;9 MergeSort ( ev , Beg i nL i s t , Midd le ) ;10 MergeSort ( ev , Middle , EndL i s t ) ;11 Merges ( ev , Beg i nL i s t , Middle , EndL i s t ) ;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

Page 40: Sorting Algorithms

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 So r t i s an O(n l o g n ) compar i son−based a l g o r i t hm .3 ∗/4 vo i d MergeSort (MyVector& ev , i n t Beg i nL i s t , i n t EndL i s t )5 {6 i f ( B e g i n L i s t < EndL i s t − 1)7 {8 i n t Midd le = ( Beg i n L i s t + EndL i s t ) /2 ;9 MergeSort ( ev , Beg i nL i s t , Midd le ) ;10 MergeSort ( ev , Middle , EndL i s t ) ;11 Merges ( ev , Beg i nL i s t , Middle , EndL i s t ) ;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

Page 41: Sorting Algorithms

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 tha t pe r f o rms the c o l l a t i o n o f l i s t s .3 ∗∗/4 vo id Merges (MyVector & ev , i n t Beg i nL i s t , i n t Middle , i n t EndL i s t )5 {6 i n t i , j , k ; MyVector w;7 w. r e s i z e ( EndL i s t − Beg i n L i s t ) ;89 i = Beg i n L i s t ; j = Middle ; k = 0 ;1011 wh i l e ( i < Middle && j < EndL i s t )12 {13 i f ( ev [ i ] <= ev [ j ] ) w[ k++] = ev [ i ++];14 e l s e w[ k++] = ev [ j ++];15 }1617 wh i l e ( i < Middle ) { w[ k++] = ev [ i ++]; }18 wh i l e ( j < EndL i s t ) { w[ k++] = ev [ j ++]; }1920 f o r ( i = Beg i n L i s t ; i < EndL i s t ; ++i ) ev [ i ] = w[ i−Beg i n L i s t ] ;2122 w. c l e a r ( ) ;23 }� �

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 42: Sorting Algorithms

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

I Algoritmo criado por Charles Hoare.I Complexidade Operacional: O(n · log n) e O(n2).I Complexidade Espacial: O(log n) e O(n).I Algoritmo do tipo “Dividir para Conquistar”.I 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 emparticionamento porém sem a fase de combinação como o merge sort.

Desvantagem: No pior caso se comporta como um algoritmoquadrático.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 43: Sorting Algorithms

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

I Algoritmo criado por Charles Hoare.I Complexidade Operacional: O(n · log n) e O(n2).I Complexidade Espacial: O(log n) e O(n).I Algoritmo do tipo “Dividir para Conquistar”.I 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 emparticionamento porém sem a fase de combinação como o merge sort.

Desvantagem: No pior caso se comporta como um algoritmoquadrático.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 44: Sorting Algorithms

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

I Algoritmo criado por Charles Hoare.I Complexidade Operacional: O(n · log n) e O(n2).I Complexidade Espacial: O(log n) e O(n).I Algoritmo do tipo “Dividir para Conquistar”.I 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 emparticionamento porém sem a fase de combinação como o merge sort.

Desvantagem: No pior caso se comporta como um algoritmoquadrático.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 45: Sorting Algorithms

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

I Algoritmo criado por Charles Hoare.I Complexidade Operacional: O(n · log n) e O(n2).I Complexidade Espacial: O(log n) e O(n).I Algoritmo do tipo “Dividir para Conquistar”.I 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 emparticionamento porém sem a fase de combinação como o merge sort.

Desvantagem: No pior caso se comporta como um algoritmoquadrático.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 46: Sorting Algorithms

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

I Algoritmo criado por Charles Hoare.I Complexidade Operacional: O(n · log n) e O(n2).I Complexidade Espacial: O(log n) e O(n).I Algoritmo do tipo “Dividir para Conquistar”.I 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 emparticionamento porém sem a fase de combinação como o merge sort.

Desvantagem: No pior caso se comporta como um algoritmoquadrático.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 47: Sorting Algorithms

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

I Algoritmo criado por Charles Hoare.I Complexidade Operacional: O(n · log n) e O(n2).I Complexidade Espacial: O(log n) e O(n).I Algoritmo do tipo “Dividir para Conquistar”.I 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 emparticionamento porém sem a fase de combinação como o merge sort.

Desvantagem: No pior caso se comporta como um algoritmoquadrático.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 48: Sorting Algorithms

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

I Algoritmo criado por Charles Hoare.I Complexidade Operacional: O(n · log n) e O(n2).I Complexidade Espacial: O(log n) e O(n).I Algoritmo do tipo “Dividir para Conquistar”.I 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 emparticionamento porém sem a fase de combinação como o merge sort.

Desvantagem: No pior caso se comporta como um algoritmoquadrático.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 49: Sorting Algorithms

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

I Algoritmo criado por Charles Hoare.I Complexidade Operacional: O(n · log n) e O(n2).I Complexidade Espacial: O(log n) e O(n).I Algoritmo do tipo “Dividir para Conquistar”.I 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 emparticionamento porém sem a fase de combinação como o merge sort.

Desvantagem: No pior caso se comporta como um algoritmoquadrático.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 50: Sorting Algorithms

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

I Algoritmo criado por Charles Hoare.I Complexidade Operacional: O(n · log n) e O(n2).I Complexidade Espacial: O(log n) e O(n).I Algoritmo do tipo “Dividir para Conquistar”.I 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 emparticionamento porém sem a fase de combinação como o merge sort.

Desvantagem: No pior caso se comporta como um algoritmoquadrático.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 51: Sorting Algorithms

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

Page 52: Sorting Algorithms

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

Page 53: Sorting Algorithms

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

Page 54: Sorting Algorithms

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 pivoteamentoperiférico ocorre quando a entrada já se encontra

ordenada.

Torna-se tão “eficiente” quanto um algoritmoquadrático convencional.

Nesse caso a profundidade da árvore é de N − 1 e nãolog 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

Page 55: Sorting Algorithms

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 pivoteamentoperiférico ocorre quando a entrada já se encontra

ordenada.

Torna-se tão “eficiente” quanto um algoritmoquadrático convencional.

Nesse caso a profundidade da árvore é de N − 1 e nãolog 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

Page 56: Sorting Algorithms

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 pivoteamentoperiférico ocorre quando a entrada já se encontra

ordenada.

Torna-se tão “eficiente” quanto um algoritmoquadrático convencional.

Nesse caso a profundidade da árvore é de N − 1 e nãolog 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

Page 57: Sorting Algorithms

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 pivoteamentoperiférico ocorre quando a entrada já se encontra

ordenada.

Torna-se tão “eficiente” quanto um algoritmoquadrático convencional.

Nesse caso a profundidade da árvore é de N − 1 e nãolog 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

Page 58: Sorting Algorithms

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 pivoteamentoperiférico ocorre quando a entrada já se encontra

ordenada.

Torna-se tão “eficiente” quanto um algoritmoquadrático convencional.

Nesse caso a profundidade da árvore é de N − 1 e nãolog 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

Page 59: Sorting Algorithms

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 pivoteamentoperiférico ocorre quando a entrada já se encontra

ordenada.

Torna-se tão “eficiente” quanto um algoritmoquadrático convencional.

Nesse caso a profundidade da árvore é de N − 1 e nãolog 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

Page 60: Sorting Algorithms

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 vo id QuickSor t (MyVector& ev , i n t Beg i nL i s t , i n t EndL i s t )2 {3 i n t i , j ; E lementVector c , t ;45 i f ( B e g i n L i s t < EndL i s t )6 {7 c = ev [ ( B e g i n L i s t + EndL i s t ) / 2 ] ;8 i = Beg i n L i s t ; j = EndL i s t ;910 wh i l e ( i <= j )11 {12 wh i l e ( ev [ i ] < c ) { ++i ; }13 wh i l e ( c < ev [ j ] ) { −−j ; }1415 i f ( i <= j )16 {17 t = ev [ i ] , ev [ i ] = ev [ j ] , ev [ j ] = t ;18 ++i , −−j ;19 }20 }2122 Qu ickSor t ( ev , Beg i nL i s t , j ) ;23 Qu ickSor t ( ev , i , EndL i s t ) ;24 }25 }� �

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 61: Sorting Algorithms

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 vo id QSort (MyVector& ev , i n t l e f t , i n t r i g h t )2 {3 i n t new_r ight ;4 i f ( r i g h t > l e f t )5 {6 new_r ight = 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_r ight − 1 ) ;8 QSort ( ev , new_r ight + 1 , r i g h t ) ;9 }10 r e t u r n ;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 ;45 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 }910 ev . swap ( l e f t , i ) ;11 r e t u r n i ;12 }� �

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 62: Sorting Algorithms

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 daimplementação de uma ferramenta que verifica o número deinstruções executadas em aglomerados numéricos aleatórios,

crescentes e decrescentes.

A ferramenta possui as seguintes funcionalidades

I Geração de aglomerado numérico aleatório;I Escolha da distribuição para geração do aglomerado numérico;I 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

Page 63: Sorting Algorithms

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 daimplementação de uma ferramenta que verifica o número deinstruções executadas em aglomerados numéricos aleatórios,

crescentes e decrescentes.

A ferramenta possui as seguintes funcionalidades

I Geração de aglomerado numérico aleatório;I Escolha da distribuição para geração do aglomerado numérico;I 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

Page 64: Sorting Algorithms

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 daimplementação de uma ferramenta que verifica o número deinstruções executadas em aglomerados numéricos aleatórios,

crescentes e decrescentes.

A ferramenta possui as seguintes funcionalidades

I Geração de aglomerado numérico aleatório;I Escolha da distribuição para geração do aglomerado numérico;I 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

Page 65: Sorting Algorithms

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 daimplementação de uma ferramenta que verifica o número deinstruções executadas em aglomerados numéricos aleatórios,

crescentes e decrescentes.

A ferramenta possui as seguintes funcionalidades

I Geração de aglomerado numérico aleatório;I Escolha da distribuição para geração do aglomerado numérico;I 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

Page 66: Sorting Algorithms

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 daimplementação de uma ferramenta que verifica o número deinstruções executadas em aglomerados numéricos aleatórios,

crescentes e decrescentes.

A ferramenta possui as seguintes funcionalidades

I Geração de aglomerado numérico aleatório;I Escolha da distribuição para geração do aglomerado numérico;I 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

Page 67: Sorting Algorithms

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 daimplementação de uma ferramenta que verifica o número deinstruções executadas em aglomerados numéricos aleatórios,

crescentes e decrescentes.

A ferramenta possui as seguintes funcionalidades

I Geração de aglomerado numérico aleatório;I Escolha da distribuição para geração do aglomerado numérico;I 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

Page 68: Sorting Algorithms

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 daimplementação de uma ferramenta que verifica o número deinstruções executadas em aglomerados numéricos aleatórios,

crescentes e decrescentes.

A ferramenta possui as seguintes funcionalidades

I Geração de aglomerado numérico aleatório;I Escolha da distribuição para geração do aglomerado numérico;I 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

Page 69: Sorting Algorithms

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 confrontandosuas respectivas complexidades teóricas e suas aplicações práticas:

I Bubble SortI Gnome SortI Shaker SortI Comb SortI Insertion Sort

I Selection SortI Shell SortI Heap SortI Quick SortI Merge Sort

Para cada execução de um determinado algoritmo são exibidas asseguintes informações:

I Número de Iterações;I Número de Comparações;I Número de Inversões;I Tempo de Execução em Segundos.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 70: Sorting Algorithms

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

Page 71: Sorting Algorithms

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

Page 72: Sorting Algorithms

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

Page 73: Sorting Algorithms

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

Page 74: Sorting Algorithms

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

Page 75: Sorting Algorithms

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

Page 76: Sorting Algorithms

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

Page 77: Sorting Algorithms

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

Page 78: Sorting Algorithms

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

Page 79: Sorting Algorithms

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

Page 80: Sorting Algorithms

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çãoAlgoritmo TempoBubble 166.785sGnome 158.188sShaker 143.156sComb 142.328sInsertion 81.765sSelection 68.204sShell 1.281sHeap 1.235sQuick 1.234sMerge 1.375s Bubble Gnome Shaker Comb Insertion Selection Shell Heap Quick Merge

050

100

150

Algoritmos

BubbleGnomeShakerCombInsertionSelectionShellHeapQuickMerge

Tempos obtidos através da aplicação dos respectivos algoritmos em aglomerados numéricos aleatórios comcardinalidade 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

Page 81: Sorting Algorithms

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 complexidadede implementação porém pecam no quesito desempenho.

Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são asmelhores opções, porém devemos estar atentos aos casos

degenerativos.

Possíveis Extensões da Ferramenta

I Ordenação Multi-Thread/Uso de Paralelismo;I Inserção de gráfico de desempenho acumulativo;I Ordenação Distribuída/Uso de Middleware;I Transformação dos algoritmos de ordenação em plugins.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 82: Sorting Algorithms

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 complexidadede implementação porém pecam no quesito desempenho.

Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são asmelhores opções, porém devemos estar atentos aos casos

degenerativos.

Possíveis Extensões da Ferramenta

I Ordenação Multi-Thread/Uso de Paralelismo;I Inserção de gráfico de desempenho acumulativo;I Ordenação Distribuída/Uso de Middleware;I Transformação dos algoritmos de ordenação em plugins.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 83: Sorting Algorithms

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 complexidadede implementação porém pecam no quesito desempenho.

Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são asmelhores opções, porém devemos estar atentos aos casos

degenerativos.

Possíveis Extensões da Ferramenta

I Ordenação Multi-Thread/Uso de Paralelismo;I Inserção de gráfico de desempenho acumulativo;I Ordenação Distribuída/Uso de Middleware;I Transformação dos algoritmos de ordenação em plugins.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 84: Sorting Algorithms

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 complexidadede implementação porém pecam no quesito desempenho.

Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são asmelhores opções, porém devemos estar atentos aos casos

degenerativos.

Possíveis Extensões da Ferramenta

I Ordenação Multi-Thread/Uso de Paralelismo;I Inserção de gráfico de desempenho acumulativo;I Ordenação Distribuída/Uso de Middleware;I Transformação dos algoritmos de ordenação em plugins.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 85: Sorting Algorithms

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 complexidadede implementação porém pecam no quesito desempenho.

Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são asmelhores opções, porém devemos estar atentos aos casos

degenerativos.

Possíveis Extensões da Ferramenta

I Ordenação Multi-Thread/Uso de Paralelismo;I Inserção de gráfico de desempenho acumulativo;I Ordenação Distribuída/Uso de Middleware;I Transformação dos algoritmos de ordenação em plugins.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 86: Sorting Algorithms

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 complexidadede implementação porém pecam no quesito desempenho.

Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são asmelhores opções, porém devemos estar atentos aos casos

degenerativos.

Possíveis Extensões da Ferramenta

I Ordenação Multi-Thread/Uso de Paralelismo;I Inserção de gráfico de desempenho acumulativo;I Ordenação Distribuída/Uso de Middleware;I Transformação dos algoritmos de ordenação em plugins.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 87: Sorting Algorithms

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 complexidadede implementação porém pecam no quesito desempenho.

Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são asmelhores opções, porém devemos estar atentos aos casos

degenerativos.

Possíveis Extensões da Ferramenta

I Ordenação Multi-Thread/Uso de Paralelismo;I Inserção de gráfico de desempenho acumulativo;I Ordenação Distribuída/Uso de Middleware;I Transformação dos algoritmos de ordenação em plugins.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 88: Sorting Algorithms

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 complexidadede implementação porém pecam no quesito desempenho.

Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são asmelhores opções, porém devemos estar atentos aos casos

degenerativos.

Possíveis Extensões da Ferramenta

I Ordenação Multi-Thread/Uso de Paralelismo;I Inserção de gráfico de desempenho acumulativo;I Ordenação Distribuída/Uso de Middleware;I Transformação dos algoritmos de ordenação em plugins.

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação

Page 89: Sorting Algorithms

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

Page 90: Sorting Algorithms

Universidade Federal do Estado de Alagoas Instituto de Matemática - Campus A. C. Simões

Agradecimentos

Grato Pela Atenção!I Michel Alves - [email protected]

Lab. de Modelagem Geométrica e Visão Computacional Geometria Computacional: Algoritmos de Ordenação