SlideShare ist ein Scribd-Unternehmen logo
1 von 20
BUBBLE SORT Definição O bubblesort, ou ordenação por flutuação (literalmente "por bolha"), é um algoritmo de ordenação dos mais simples. A ideia é percorrer o vector diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo. Características: ,[object Object]
Lento para ordenar grande número de elementos, mas eficiente com poucos elementos;
O(n2) comparações e trocas;
Adaptativo: O(n) comparações e trocas se o algoritmo estiver parcialmente ordenado.
Pior Caso: O(n2), Caso Médio O(n2) melhor caso O(n).,[object Object]
SELECTION SORT Definição O selectionsort (ordenação por seleção) é um algoritmo de ordenação baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posição, e assim é feito sucessivamente com os (n-1) elementos restantes, até os últimos dois elementos. Pior Caso: O(n2), Caso Médio O(n2) Melhor caso O(n2).
SELECTION SORT Demonstração:
QUICK SORT Definição O QuickSort é um algoritmo baseado em Divisão e Conquista. Isso significa que ele divide sucessivamente um problema e partes menores . O próximo passo é solucionar recursivamente os sub-problemas, ou seja ordenar os elementos, e só então combinar as soluções menores de forma a obter a solução final.   Complexidade: Pior Caso:      O(n2) Caso Médio: O(nlogn) Melhor caso:O(nlogn).
QUICK SORT Demonstração
MERGE SORT Definição Sua idéia básica é muito fácil: criar uma sequência ordenada a partir de duas outras também ordenadas. Para isso, ele divide a sequência original em pares de dados, ordena-as; depois as agrupa em sequências de quatro elementos, e assim por diante, até ter toda a sequência dividida em apenas duas partes. Os três passos úteis dos algoritmos dividir-para-conquistar, ou divide andconquer, que se aplicam ao merge sort são: Dividir: Dividir os dados em subsequências pequenas; Conquistar: Classificar as duas metades recursivamente aplicando o merge sort; Combinar: Juntar as duas metades em um único conjunto já classificado. Complexidade: Pior Caso:      O(nlogn) Caso Médio: O(nlogn) Melhor caso:O(nlogn).
MERGE SORT Demonstração
HEAP SORT Definição • HeapSorttambém é um método de seleção – ordena através de sucessivas seleções do elemento correto a ser posicionado em um segmento ordenado • O HeapSortutiliza um heap binário para manter o próximo elemento a ser selecionado – heap binário: árvore binária mantida na forma de vetor – o heapé gerado e mantido no próprio vetor a ser ordenado (no segmento não-ordenado) Complexidade: Pior Caso:      O(nlogn) Caso Médio: O(nlogn) Melhor caso:O(nlogn).
HEAP SORT Você sabe o que um Heap? Primeiro vamos entender o que é um Heap.
HEAP SORT HeapBinário – Exemplo • raiz da árvore: primeira posição do vetor • filhos de um nodo na posição i: posições 2i e 2i + 1 • pai de um nodo na posição i: posição ëi / 2û
HEAP SORT HeapBinário Máximo • HeapBinário tal que um nodo pai tem valor maior ou igual ao valor dos nodos filhos
HEAP SORT Funcionamento 1. Transformação do vetor em um heap binário máximo (Construção do Heap) 2. Ordenação – a cada iteração seleciona-se o maior elemento (na raiz do heap) e o adiciona no início de um segmento ordenado – após cada seleção de elemento, o heap deve ser reorganizado para continuar sendo um heap binário máximo.
HEAP SORT
HEAP SORT • Método auxiliar responsável pelo ajuste de um elemento no heap – método ajustaElemento(posição, vetor.lenght) – realiza trocas no heap para posicionar corretamente um elemento • Exemplo: ajustaElemento(1, 7)
HEAP SORT Ajuste de Elementos • Executa até que o elemento seja transferido para uma posição i > ën/2û – após a posição ën/2û , o elemento já é um nodo folha
HEAP SORT Etapa de Ordenação • A cada iteração seleciona o maior elemento do heap (sempre está na primeira posição) e o troca com o elemento no final do segmento não-ordenado • Após a troca, o novo elemento raiz do heap deve ser ajustado (deve-se chamar ajustaElemento para o nodo raiz) • O processo termina quando o heap tiver somente 1 elemento (vetor ordenado)

Weitere ähnliche Inhalte

Was ist angesagt?

Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenaçãoJonas Mendonça
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmosSandro Arpi
 
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Leinylson Fontinele
 
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
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Leinylson Fontinele
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlex Camargo
 
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 dadosThalita Chaves
 
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente EncadeadasLeinylson Fontinele
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosLeinylson Fontinele
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresPedro Valente
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Leinylson Fontinele
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaDelacyr Ferreira
 
Vetores e Matrizes
Vetores e MatrizesVetores e Matrizes
Vetores e Matrizesprofjr
 
Resolução da Lista de exercícios - Conversão de bases e aritmética computacional
Resolução da Lista de exercícios - Conversão de bases e aritmética computacionalResolução da Lista de exercícios - Conversão de bases e aritmética computacional
Resolução da Lista de exercícios - Conversão de bases e aritmética computacionalVitor Hugo Melo Araújo
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 

Was ist angesagt? (20)

Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmos
 
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Pesquisa e Ordenação - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
 
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
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: Matrizes
 
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
 
Algoritmo Shell Sort
Algoritmo Shell SortAlgoritmo Shell Sort
Algoritmo Shell Sort
 
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
 
Banco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de DadosBanco de Dados I - Aula 09 - Normalização de Dados
Banco de Dados I - Aula 09 - Normalização de Dados
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetores
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)Estrutura de Dados Apoio (Tabela Hash)
Estrutura de Dados Apoio (Tabela Hash)
 
Sistemas de numeração
Sistemas de numeraçãoSistemas de numeração
Sistemas de numeração
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise Assintótica
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Vetores e Matrizes
Vetores e MatrizesVetores e Matrizes
Vetores e Matrizes
 
Resolução da Lista de exercícios - Conversão de bases e aritmética computacional
Resolução da Lista de exercícios - Conversão de bases e aritmética computacionalResolução da Lista de exercícios - Conversão de bases e aritmética computacional
Resolução da Lista de exercícios - Conversão de bases e aritmética computacional
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 

Andere mochten auch

Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem PythonElementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem PythonCaliane Z. Pecenin
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmosRicardo Bolanho
 
Ordenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesOrdenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesMauricio Volkweis Astiazara
 
Tutorial aed iii 001 - algoritmo de ordenação shellsort
Tutorial aed iii   001 - algoritmo de ordenação shellsortTutorial aed iii   001 - algoritmo de ordenação shellsort
Tutorial aed iii 001 - algoritmo de ordenação shellsortFlávio Freitas
 
Exercícios resolvidos de Algoritmo
Exercícios resolvidos de AlgoritmoExercícios resolvidos de Algoritmo
Exercícios resolvidos de AlgoritmoJota Thin
 
Ideias para programar
Ideias para programarIdeias para programar
Ideias para programarrobinhoct
 
Metodo de Ordenação Selection sort
Metodo de Ordenação Selection sortMetodo de Ordenação Selection sort
Metodo de Ordenação Selection sortLeno Oliveira
 
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoAnálise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoDelacyr Ferreira
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPDelacyr Ferreira
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeDelacyr Ferreira
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Universidade de São Paulo
 
Inteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosInteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosRafael Pinto
 
Bucket sort
Bucket sortBucket sort
Bucket sorteislenp
 

Andere mochten auch (18)

Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem PythonElementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
 
Bubble sort
Bubble sortBubble sort
Bubble sort
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Ordenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesOrdenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de Chaves
 
Tutorial aed iii 001 - algoritmo de ordenação shellsort
Tutorial aed iii   001 - algoritmo de ordenação shellsortTutorial aed iii   001 - algoritmo de ordenação shellsort
Tutorial aed iii 001 - algoritmo de ordenação shellsort
 
7 slides
7 slides7 slides
7 slides
 
Exercícios resolvidos de Algoritmo
Exercícios resolvidos de AlgoritmoExercícios resolvidos de Algoritmo
Exercícios resolvidos de Algoritmo
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
Ideias para programar
Ideias para programarIdeias para programar
Ideias para programar
 
Metodo de Ordenação Selection sort
Metodo de Ordenação Selection sortMetodo de Ordenação Selection sort
Metodo de Ordenação Selection sort
 
Ordenação por inserção
Ordenação por inserçãoOrdenação por inserção
Ordenação por inserção
 
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoAnálise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NP
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
Inteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosInteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em Grafos
 
Bucket sort
Bucket sortBucket sort
Bucket sort
 

Ähnlich wie Ordenação por heap sort

Ähnlich wie Ordenação por heap sort (6)

Aula 20
Aula 20Aula 20
Aula 20
 
Aula 21
Aula 21Aula 21
Aula 21
 
Algorimos De Ordenação
Algorimos De OrdenaçãoAlgorimos De Ordenação
Algorimos De Ordenação
 
Aula 4
Aula 4 Aula 4
Aula 4
 
Tutorial aed iii 008 - algoritmo de ordenação heapsort
Tutorial aed iii   008 - algoritmo de ordenação heapsortTutorial aed iii   008 - algoritmo de ordenação heapsort
Tutorial aed iii 008 - algoritmo de ordenação heapsort
 
Pged 04
Pged 04Pged 04
Pged 04
 

Ordenação por heap sort

  • 1.
  • 2. Lento para ordenar grande número de elementos, mas eficiente com poucos elementos;
  • 4. Adaptativo: O(n) comparações e trocas se o algoritmo estiver parcialmente ordenado.
  • 5.
  • 6. SELECTION SORT Definição O selectionsort (ordenação por seleção) é um algoritmo de ordenação baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posição, e assim é feito sucessivamente com os (n-1) elementos restantes, até os últimos dois elementos. Pior Caso: O(n2), Caso Médio O(n2) Melhor caso O(n2).
  • 8. QUICK SORT Definição O QuickSort é um algoritmo baseado em Divisão e Conquista. Isso significa que ele divide sucessivamente um problema e partes menores . O próximo passo é solucionar recursivamente os sub-problemas, ou seja ordenar os elementos, e só então combinar as soluções menores de forma a obter a solução final. Complexidade: Pior Caso: O(n2) Caso Médio: O(nlogn) Melhor caso:O(nlogn).
  • 10. MERGE SORT Definição Sua idéia básica é muito fácil: criar uma sequência ordenada a partir de duas outras também ordenadas. Para isso, ele divide a sequência original em pares de dados, ordena-as; depois as agrupa em sequências de quatro elementos, e assim por diante, até ter toda a sequência dividida em apenas duas partes. Os três passos úteis dos algoritmos dividir-para-conquistar, ou divide andconquer, que se aplicam ao merge sort são: Dividir: Dividir os dados em subsequências pequenas; Conquistar: Classificar as duas metades recursivamente aplicando o merge sort; Combinar: Juntar as duas metades em um único conjunto já classificado. Complexidade: Pior Caso: O(nlogn) Caso Médio: O(nlogn) Melhor caso:O(nlogn).
  • 12. HEAP SORT Definição • HeapSorttambém é um método de seleção – ordena através de sucessivas seleções do elemento correto a ser posicionado em um segmento ordenado • O HeapSortutiliza um heap binário para manter o próximo elemento a ser selecionado – heap binário: árvore binária mantida na forma de vetor – o heapé gerado e mantido no próprio vetor a ser ordenado (no segmento não-ordenado) Complexidade: Pior Caso: O(nlogn) Caso Médio: O(nlogn) Melhor caso:O(nlogn).
  • 13. HEAP SORT Você sabe o que um Heap? Primeiro vamos entender o que é um Heap.
  • 14. HEAP SORT HeapBinário – Exemplo • raiz da árvore: primeira posição do vetor • filhos de um nodo na posição i: posições 2i e 2i + 1 • pai de um nodo na posição i: posição ëi / 2û
  • 15. HEAP SORT HeapBinário Máximo • HeapBinário tal que um nodo pai tem valor maior ou igual ao valor dos nodos filhos
  • 16. HEAP SORT Funcionamento 1. Transformação do vetor em um heap binário máximo (Construção do Heap) 2. Ordenação – a cada iteração seleciona-se o maior elemento (na raiz do heap) e o adiciona no início de um segmento ordenado – após cada seleção de elemento, o heap deve ser reorganizado para continuar sendo um heap binário máximo.
  • 18. HEAP SORT • Método auxiliar responsável pelo ajuste de um elemento no heap – método ajustaElemento(posição, vetor.lenght) – realiza trocas no heap para posicionar corretamente um elemento • Exemplo: ajustaElemento(1, 7)
  • 19. HEAP SORT Ajuste de Elementos • Executa até que o elemento seja transferido para uma posição i > ën/2û – após a posição ën/2û , o elemento já é um nodo folha
  • 20. HEAP SORT Etapa de Ordenação • A cada iteração seleciona o maior elemento do heap (sempre está na primeira posição) e o troca com o elemento no final do segmento não-ordenado • Após a troca, o novo elemento raiz do heap deve ser ajustado (deve-se chamar ajustaElemento para o nodo raiz) • O processo termina quando o heap tiver somente 1 elemento (vetor ordenado)
  • 21. HEAP SORT Nesse caso, um Heap Máximo.
  • 23. FIM Referências: Wikipédia Vimeo.com Ordenação de Dados(III) UFSC-CTC-INE INE5384 - Estruturas de Dados Prof. Ronaldo S. Mello UNICAMP Fernando Ferreira