SlideShare uma empresa Scribd logo
1 de 18
QUICK
SORT
Aline
Nascimento
Danilo Ataide
Professor Leandro Guarino
Introdução
 O algoritmo Quick Sort é um método de ordenação muito
rápido e eficiente;
 Inventado por C.A.R. Hoare em 1960, quando era estudante
da Universidade de Moscovo;
 Hoare criou o Quick Sort ao tentar traduzir um dicionário de
inglês para russo, ordenando as palavras, tendo como
objetivo reduzir o problema original em subproblemas para
assim poder ser resolvido mais fácil e rapidamente.
Como Funciona?
 Este método divide a tabela em duas sub-
tabelas, a partir de um elemento chamado
pivô, normalmente o 1º elemento da tabela.
 Uma das sub-tabelas contém os elementos
menores que o pivô enquanto a outra
contém os maiores. O pivô é colocado entre
ambas, ficando na posição correta.
Como Funciona?
 EXEMPLO: Essas barras de tamanhos diferentes devem ser
alinhadas em ordem crescente:
Como Funciona?
 O algoritmo Quick Sort escolhe um elemento aleatório que
será o pivô.
Como Funciona?
 Os elementos são organizados de maneira que os menores
ficam do lado esquerdo do pivô e os maiores do lado direito
(são as duas sub-tabelas). E pivô já está na posição correta.
Como Funciona?
 Depois de encontrar a posição do pivô e separar em duas
tabelas, ele passa para uma das sub-tabelas e escolhe outro
pivô.
Como Funciona?
 Então, com esse outro pivô ele repete o procedimento,
encontra o lugar dele, separa os menores em outras sub-
tabelas e ordena.
Como Funciona?
 O pivô do início e todo o lado esquerdo já está ordenado,
Agora ele passa para a outra sub-tabela, o lado direito do
primeiro pivô, escolhe outro pivô e ordena.
Como Funciona?
 Encontra o local certo do pivô e ordena os lados como nos
outros casos.
Como Funciona?
 E depois de ordenado ele fica assim:
Como Funciona?
 Em execução:
Como ocorrem as trocas?
 Para explicar como ocorrem as trocas depois
de escolhido o pivô.
Como ocorrem as trocas?
 Após fixar o pivô, ele passa para sub-tabelas de valores
menores e maiores.
O código
 Colocar algum aki
Comparando Bubble x Quick
Sort
Conclusão
 Existem muitos tipos de algoritmos de
ordenação e várias razões para se ordenar
uma seqüência. Uma delas é a possibilidade
se acessar seus dados de modo mais
eficiente.
 O Quick Sort é um dos método mais rápidos
de ordenação
 TEM Q TERMINAR
Referências Bibliográficas
 http://pt.wikipedia.org/wiki/Quicksort
 http://br.monografias.com
 http://w3.ualg.pt/~hshah/ped/Aula%2014/Quick_final.html
 http://utopia.poly.edu/~kshanm01/algorithm/quick_sort_s
imulation.html
 GOODRICH, Michael T. & TAMASSIA, Roberto. Estrutura de
Dados e Algoritmos em JAVA, 4ª ed. – Porto Alegre, 2007

Mais conteúdo relacionado

Mais procurados

Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
Adriano Teixeira de Souza
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
Alvaro Oliveira
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.
Júlio Rocha
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
Silvino Neto
 

Mais procurados (20)

Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Scrum
ScrumScrum
Scrum
 
Algoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetiçãoAlgoritmos 05 - Estruturas de repetição
Algoritmos 05 - Estruturas de repetição
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Bancos de dados e usuários de banco de dados
Bancos de dados e usuários de banco de dadosBancos de dados e usuários de banco de dados
Bancos de dados e usuários de banco de dados
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Bubble Sort
Bubble SortBubble Sort
Bubble Sort
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Tratamento de erros
Tratamento de errosTratamento de erros
Tratamento de erros
 

Destaque (13)

Auditoria de sistemas
Auditoria de sistemasAuditoria de sistemas
Auditoria de sistemas
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 
Pesquisa e Ordenação - Aula 05 - Métodos de Ordenação (Troca de partição - Qu...
Pesquisa e Ordenação - Aula 05 - Métodos de Ordenação (Troca de partição - Qu...Pesquisa e Ordenação - Aula 05 - Métodos de Ordenação (Troca de partição - Qu...
Pesquisa e Ordenação - Aula 05 - Métodos de Ordenação (Troca de partição - Qu...
 
Quicksort
QuicksortQuicksort
Quicksort
 
Algoritmo metodo quicksort
Algoritmo metodo quicksortAlgoritmo metodo quicksort
Algoritmo metodo quicksort
 
Quicksort
QuicksortQuicksort
Quicksort
 
Quicksort
QuicksortQuicksort
Quicksort
 
Metodos de ordenação estrutura de dados
Metodos de ordenação   estrutura de dadosMetodos de ordenação   estrutura de dados
Metodos de ordenação estrutura de dados
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 
Conjunto de instruções mips - introdução
Conjunto de instruções mips - introduçãoConjunto de instruções mips - introdução
Conjunto de instruções mips - introdução
 
Como colocar as referências segundo a abnt
Como colocar as referências segundo a abntComo colocar as referências segundo a abnt
Como colocar as referências segundo a abnt
 
Como redigir a introdução e a conclusão de um trabalho escrito
Como redigir a introdução e a conclusão de um trabalho escritoComo redigir a introdução e a conclusão de um trabalho escrito
Como redigir a introdução e a conclusão de um trabalho escrito
 

Quick sort

  • 2. Introdução  O algoritmo Quick Sort é um método de ordenação muito rápido e eficiente;  Inventado por C.A.R. Hoare em 1960, quando era estudante da Universidade de Moscovo;  Hoare criou o Quick Sort ao tentar traduzir um dicionário de inglês para russo, ordenando as palavras, tendo como objetivo reduzir o problema original em subproblemas para assim poder ser resolvido mais fácil e rapidamente.
  • 3. Como Funciona?  Este método divide a tabela em duas sub- tabelas, a partir de um elemento chamado pivô, normalmente o 1º elemento da tabela.  Uma das sub-tabelas contém os elementos menores que o pivô enquanto a outra contém os maiores. O pivô é colocado entre ambas, ficando na posição correta.
  • 4. Como Funciona?  EXEMPLO: Essas barras de tamanhos diferentes devem ser alinhadas em ordem crescente:
  • 5. Como Funciona?  O algoritmo Quick Sort escolhe um elemento aleatório que será o pivô.
  • 6. Como Funciona?  Os elementos são organizados de maneira que os menores ficam do lado esquerdo do pivô e os maiores do lado direito (são as duas sub-tabelas). E pivô já está na posição correta.
  • 7. Como Funciona?  Depois de encontrar a posição do pivô e separar em duas tabelas, ele passa para uma das sub-tabelas e escolhe outro pivô.
  • 8. Como Funciona?  Então, com esse outro pivô ele repete o procedimento, encontra o lugar dele, separa os menores em outras sub- tabelas e ordena.
  • 9. Como Funciona?  O pivô do início e todo o lado esquerdo já está ordenado, Agora ele passa para a outra sub-tabela, o lado direito do primeiro pivô, escolhe outro pivô e ordena.
  • 10. Como Funciona?  Encontra o local certo do pivô e ordena os lados como nos outros casos.
  • 11. Como Funciona?  E depois de ordenado ele fica assim:
  • 12. Como Funciona?  Em execução:
  • 13. Como ocorrem as trocas?  Para explicar como ocorrem as trocas depois de escolhido o pivô.
  • 14. Como ocorrem as trocas?  Após fixar o pivô, ele passa para sub-tabelas de valores menores e maiores.
  • 16. Comparando Bubble x Quick Sort
  • 17. Conclusão  Existem muitos tipos de algoritmos de ordenação e várias razões para se ordenar uma seqüência. Uma delas é a possibilidade se acessar seus dados de modo mais eficiente.  O Quick Sort é um dos método mais rápidos de ordenação  TEM Q TERMINAR
  • 18. Referências Bibliográficas  http://pt.wikipedia.org/wiki/Quicksort  http://br.monografias.com  http://w3.ualg.pt/~hshah/ped/Aula%2014/Quick_final.html  http://utopia.poly.edu/~kshanm01/algorithm/quick_sort_s imulation.html  GOODRICH, Michael T. & TAMASSIA, Roberto. Estrutura de Dados e Algoritmos em JAVA, 4ª ed. – Porto Alegre, 2007