SlideShare uma empresa Scribd logo
1 de 11
Geometria Computacional
2013.1
Algoritmos de Ordenação:
Quicksort
Ismália Santiago
3
Conteúdo
1. Introdução
2. Descrição
2.1. O algoritmo
2.2. Funcionamento de Partition
3. Estudo da Complexidade
 Pior caso
 Melhor caso
4. Análise
 Vantagens
 Desvantagens
5. Referências
Geometria Computacional
4
1. Introdução
 Método de ordenação rápido e eficiente
 Proposto por Sir Charles Antony Richard Hoare em
1960 e publicado em 1962 após uma série de
refinamentos
 Dividir e conquistar
 Método de ordenação interna, ou seja, não necessita
de uma memória secundária para o processo (a
ordenação é feita na memória principal do
computador)
Geometria Computacional
5
2. Descrição
 O funcionamento do Quicksort resume-se a
dividir o problema de ordenar um vetor de n
posições em dois outros menores:
 Dividir: O array A[p..r] é particionado em dois subarrays
(possivelmente vazios) A[p..q-1] e A[q+1..r]
• Cada elemento de A[p..q-1] é menor ou igual a A[q], que, por sua
vez, é igual ou menor a cada elemento de A[q+1..r]
 Conquistar: O dois subarrays A[p..q-1] e A[q+1..r] são
ordenados por chamadas recursivas a quicksort
 Combinar: Os subarrays que foram ordenados localmente
são combinados e produzem a solução final
Geometria Computacional
6
2.1. O algoritmo
Quicksort(A, p, r)
1 se p < r então
2 q  Partition (A, p, r)
3 Quicksort(A, p, q-1)
4 Quicksort(A, q+1, r)
Partition(A, p, r)
1 x  A[r]
2 i  p - 1
3 para j  p até r-1 faça
4 se A[j] <= x então
5 i  i + 1
6 troque A[i]  A[j]
7 troque A[i+1]  A[r]
8 retorne i+1
Geometria Computacional
Elemento pivô
A[p .. q-1] <= pivô < = A[q+1 .. r]
7
2.2. Funcionamento de Partition
 (a) O arranjo inicial e as configurações
de variáveis
 (b) O valor 2 é “trocado com ele mesmo”
e inserido na partição de valores
menores
 (c) e (d) Os valores 8 e 7 foram
acrescentados à partição de valores
maiores
 (e) Os valores 1 e 8 são permutados, e a
partição menor cresce
 (f) Os valores 3 e 8 são permutados , e a
partição menor cresce
 (g) e (h) A partição maior cresce até
incluir 5 e 6 e o loop termina
 (i) O elemento pivô é permutado de
forma a residir entre as duas partições
Geometria Computacional
8
3. Estudo da Complexidade
 Pior caso
 Tempo de execução: O(n²)
 Acontece quando o particionamento não é balanceado ou
quando o array de entrada já está completamente ordenado.
Geometria Computacional
9
3. Estudo da Complexidade
 Melhor caso
 Tempo de execução: O(n lgn)
 Acontece quando as partições têm sempre o mesmo tamanho
(partições balanceadas).
Geometria Computacional
10
4. Análise
 Vantagens
 Ótima opção para ordenar arquivos grandes
 Necessita apenas de uma pequena pilha como memória
extra (altura da pilha não passa de lg(n) se o vetor tiver n
elementos)
 Complexidade no melhor caso é O(n lgn)
 Desvantagens
 Não é estável
 Tem pior caso de O(n²)
 A escolha correta do pivô é essencial para a garantia de
eficiência do algoritmo
Geometria Computacional
11
5. Referências
 CORMEN, Thomas H.; LEISERSON, Charles
E.; RIVEST, Ronald L.; STEIN, Clifford;
Introduction to Algorithms. Second Edition.
 http://homepages.dcc.ufmg.br/~cunha/te
aching/20121/aeds2/quicksort.pdf
 http://pt.wikipedia.org/wiki/Quicksort
 http://www.ime.usp.br/~pf/algoritmos/au
las/quick.html
 http://www.decom.ufop.br/menotti/aedI0
82/tps/tp3-sol1.pdf
Geometria Computacional

Mais conteúdo relacionado

Mais procurados (20)

Merge sort
Merge sortMerge sort
Merge sort
 
Quicksort Presentation
Quicksort PresentationQuicksort Presentation
Quicksort Presentation
 
Merge sort
Merge sortMerge sort
Merge sort
 
Queue
QueueQueue
Queue
 
Sorting Algorithm
Sorting AlgorithmSorting Algorithm
Sorting Algorithm
 
Selection sort
Selection sortSelection sort
Selection sort
 
Quicksort
QuicksortQuicksort
Quicksort
 
Método Burbuja y Búsqueda binaria (explicación)
Método Burbuja y Búsqueda binaria (explicación)Método Burbuja y Búsqueda binaria (explicación)
Método Burbuja y Búsqueda binaria (explicación)
 
2.1.5 Ordenación por Distribucion.pptx
2.1.5 Ordenación por Distribucion.pptx2.1.5 Ordenación por Distribucion.pptx
2.1.5 Ordenación por Distribucion.pptx
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
 
Merge sort algorithm power point presentation
Merge sort algorithm power point presentationMerge sort algorithm power point presentation
Merge sort algorithm power point presentation
 
BCA DATA STRUCTURES SEARCHING AND SORTING MRS.SOWMYA JYOTHI
BCA DATA STRUCTURES SEARCHING AND SORTING MRS.SOWMYA JYOTHIBCA DATA STRUCTURES SEARCHING AND SORTING MRS.SOWMYA JYOTHI
BCA DATA STRUCTURES SEARCHING AND SORTING MRS.SOWMYA JYOTHI
 
Bubble Sort
Bubble SortBubble Sort
Bubble Sort
 
Queues
QueuesQueues
Queues
 
Sorting algorithms
Sorting algorithmsSorting algorithms
Sorting algorithms
 
Merge sort
Merge sortMerge sort
Merge sort
 
Selection sort
Selection sortSelection sort
Selection sort
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmos
 
Merge sort algorithm
Merge sort algorithmMerge sort algorithm
Merge sort algorithm
 
Insertion sort : Sorting Analysis with Program and Algorithm
Insertion sort : Sorting Analysis with Program and AlgorithmInsertion sort : Sorting Analysis with Program and Algorithm
Insertion sort : Sorting Analysis with Program and Algorithm
 

Semelhante a Quicksort

Tutorial aed iii 004 - algoritmo de ordenação quicksort
Tutorial aed iii   004 - algoritmo de ordenação quicksortTutorial aed iii   004 - algoritmo de ordenação quicksort
Tutorial aed iii 004 - algoritmo de ordenação quicksortFlávio Freitas
 
Comparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoComparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoLenon Fachiano
 
Ordenação de pares e ímpares
Ordenação de pares e ímparesOrdenação de pares e ímpares
Ordenação de pares e ímparesDiego Lusa
 
Tutorial aed iii 005 - algoritmo de ordenação quicksort
Tutorial aed iii   005 - algoritmo de ordenação quicksortTutorial aed iii   005 - algoritmo de ordenação quicksort
Tutorial aed iii 005 - algoritmo de ordenação quicksortFlávio Freitas
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesRADILSON RIPARDO DE FRETIAS
 
Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoGustavo Carvalho
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfSimoneSantos16595
 
(ACH2044) Sistemas Operacionais - Aula 06
(ACH2044) Sistemas Operacionais - Aula 06(ACH2044) Sistemas Operacionais - Aula 06
(ACH2044) Sistemas Operacionais - Aula 06Norton Trevisan Roman
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenaçãoDaiana de Ávila
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threadsIsraelCunha
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptssuserd654cb1
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 
SysSorting Professional
SysSorting ProfessionalSysSorting Professional
SysSorting ProfessionalMichel Alves
 
Automação ind 2_2014
Automação ind 2_2014Automação ind 2_2014
Automação ind 2_2014Marcio Oliani
 

Semelhante a Quicksort (15)

Tutorial aed iii 004 - algoritmo de ordenação quicksort
Tutorial aed iii   004 - algoritmo de ordenação quicksortTutorial aed iii   004 - algoritmo de ordenação quicksort
Tutorial aed iii 004 - algoritmo de ordenação quicksort
 
Comparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoComparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de Ordenação
 
Ordenação de pares e ímpares
Ordenação de pares e ímparesOrdenação de pares e ímpares
Ordenação de pares e ímpares
 
Tutorial aed iii 005 - algoritmo de ordenação quicksort
Tutorial aed iii   005 - algoritmo de ordenação quicksortTutorial aed iii   005 - algoritmo de ordenação quicksort
Tutorial aed iii 005 - algoritmo de ordenação quicksort
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizes
 
Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenação
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdf
 
(ACH2044) Sistemas Operacionais - Aula 06
(ACH2044) Sistemas Operacionais - Aula 06(ACH2044) Sistemas Operacionais - Aula 06
(ACH2044) Sistemas Operacionais - Aula 06
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threads
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
SysSorting Professional
SysSorting ProfessionalSysSorting Professional
SysSorting Professional
 
Automação ind 2_2014
Automação ind 2_2014Automação ind 2_2014
Automação ind 2_2014
 
Guia Matlab
Guia MatlabGuia Matlab
Guia Matlab
 

Último

Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 

Último (20)

Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 

Quicksort

  • 3. 3 Conteúdo 1. Introdução 2. Descrição 2.1. O algoritmo 2.2. Funcionamento de Partition 3. Estudo da Complexidade  Pior caso  Melhor caso 4. Análise  Vantagens  Desvantagens 5. Referências Geometria Computacional
  • 4. 4 1. Introdução  Método de ordenação rápido e eficiente  Proposto por Sir Charles Antony Richard Hoare em 1960 e publicado em 1962 após uma série de refinamentos  Dividir e conquistar  Método de ordenação interna, ou seja, não necessita de uma memória secundária para o processo (a ordenação é feita na memória principal do computador) Geometria Computacional
  • 5. 5 2. Descrição  O funcionamento do Quicksort resume-se a dividir o problema de ordenar um vetor de n posições em dois outros menores:  Dividir: O array A[p..r] é particionado em dois subarrays (possivelmente vazios) A[p..q-1] e A[q+1..r] • Cada elemento de A[p..q-1] é menor ou igual a A[q], que, por sua vez, é igual ou menor a cada elemento de A[q+1..r]  Conquistar: O dois subarrays A[p..q-1] e A[q+1..r] são ordenados por chamadas recursivas a quicksort  Combinar: Os subarrays que foram ordenados localmente são combinados e produzem a solução final Geometria Computacional
  • 6. 6 2.1. O algoritmo Quicksort(A, p, r) 1 se p < r então 2 q  Partition (A, p, r) 3 Quicksort(A, p, q-1) 4 Quicksort(A, q+1, r) Partition(A, p, r) 1 x  A[r] 2 i  p - 1 3 para j  p até r-1 faça 4 se A[j] <= x então 5 i  i + 1 6 troque A[i]  A[j] 7 troque A[i+1]  A[r] 8 retorne i+1 Geometria Computacional Elemento pivô A[p .. q-1] <= pivô < = A[q+1 .. r]
  • 7. 7 2.2. Funcionamento de Partition  (a) O arranjo inicial e as configurações de variáveis  (b) O valor 2 é “trocado com ele mesmo” e inserido na partição de valores menores  (c) e (d) Os valores 8 e 7 foram acrescentados à partição de valores maiores  (e) Os valores 1 e 8 são permutados, e a partição menor cresce  (f) Os valores 3 e 8 são permutados , e a partição menor cresce  (g) e (h) A partição maior cresce até incluir 5 e 6 e o loop termina  (i) O elemento pivô é permutado de forma a residir entre as duas partições Geometria Computacional
  • 8. 8 3. Estudo da Complexidade  Pior caso  Tempo de execução: O(n²)  Acontece quando o particionamento não é balanceado ou quando o array de entrada já está completamente ordenado. Geometria Computacional
  • 9. 9 3. Estudo da Complexidade  Melhor caso  Tempo de execução: O(n lgn)  Acontece quando as partições têm sempre o mesmo tamanho (partições balanceadas). Geometria Computacional
  • 10. 10 4. Análise  Vantagens  Ótima opção para ordenar arquivos grandes  Necessita apenas de uma pequena pilha como memória extra (altura da pilha não passa de lg(n) se o vetor tiver n elementos)  Complexidade no melhor caso é O(n lgn)  Desvantagens  Não é estável  Tem pior caso de O(n²)  A escolha correta do pivô é essencial para a garantia de eficiência do algoritmo Geometria Computacional
  • 11. 11 5. Referências  CORMEN, Thomas H.; LEISERSON, Charles E.; RIVEST, Ronald L.; STEIN, Clifford; Introduction to Algorithms. Second Edition.  http://homepages.dcc.ufmg.br/~cunha/te aching/20121/aeds2/quicksort.pdf  http://pt.wikipedia.org/wiki/Quicksort  http://www.ime.usp.br/~pf/algoritmos/au las/quick.html  http://www.decom.ufop.br/menotti/aedI0 82/tps/tp3-sol1.pdf Geometria Computacional