Sorting Algorithms

90
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

description

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.

Transcript of Sorting Algorithms

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