SlideShare una empresa de Scribd logo
1 de 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)

Más contenido relacionado

La actualidad más candente

Técnica de busca - Bubble Sort
Técnica de busca - Bubble SortTécnica de busca - Bubble Sort
Técnica de busca - Bubble SortBruno Oliveira
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e bináriasSérgio Souza Costa
 
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
 
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)Leinylson Fontinele
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
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
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)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 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Leinylson Fontinele
 
Estrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasEstrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasLeinylson Fontinele
 
15 algoritmos de busca em tabelas - sequencial e binaria
15   algoritmos de busca em tabelas - sequencial e binaria15   algoritmos de busca em tabelas - sequencial e binaria
15 algoritmos de busca em tabelas - sequencial e binariaRicardo Bolanho
 
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
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Listas duplamente encadeadas
Listas duplamente encadeadasListas duplamente encadeadas
Listas duplamente encadeadasJailson Torquato
 

La actualidad más candente (20)

Técnica de busca - Bubble Sort
Técnica de busca - Bubble SortTécnica de busca - Bubble Sort
Técnica de busca - Bubble Sort
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e binárias
 
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
 
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
 
Insertion Sort
Insertion SortInsertion Sort
Insertion Sort
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Aula 08 - árvores
Aula 08 - árvoresAula 08 - árvores
Aula 08 - árvores
 
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)
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
 
Arvores b
Arvores bArvores b
Arvores b
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
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 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
 
Estrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasEstrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas Estáticas
 
15 algoritmos de busca em tabelas - sequencial e binaria
15   algoritmos de busca em tabelas - sequencial e binaria15   algoritmos de busca em tabelas - sequencial e binaria
15 algoritmos de busca em tabelas - sequencial e binaria
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Listas duplamente encadeadas
Listas duplamente encadeadasListas duplamente encadeadas
Listas duplamente encadeadas
 

Destacado

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 - 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
 
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
 

Destacado (19)

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 - 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
 
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
 

Similar a Algoritmos de busca

Algorimos De Ordenação
Algorimos De OrdenaçãoAlgorimos De Ordenação
Algorimos De OrdenaçãoBrian Supra
 
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 heapsortFlá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
 

Similar a Algoritmos de busca (7)

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
 
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
 

Último

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Algoritmos de busca

  • 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