SlideShare uma empresa Scribd logo
1 de 5
Algoritmos de ordenação
Em programação, muitas vezes, há a necessidade de ordenar dados. Se o nosso volume de
dados não for muito grande, não há problema se escolhermos um algoritmo de ordenação
eficaz ou não. Simplesmente quando o volume de dados é reduzido o tempo de execução de
um algoritmo de ordenação mais elementar é igual ou inferior ao tempo de execução de um
algoritmo mais avançado de ordenação.

Os algoritmos mais avançados executam mais instruções e utilização maior quantidade
estruturas de dados auxiliares. É com o aumento do volume dos dados, que a manipulação
destas estruturas de dados revela a sua utilidade e a sua contribuição para uma ordenação
mais rápida.

Para ordenar, o algoritmo só precisa de saber qual é a chave de ordenação, a partir dai ele
manipula os elementos a ordenar, considerando como elemento de comparação a chave que
lhe for dada. Por exemplo, podemos ordenar um conjunto de nomes por ordem alfabética
crescente ou decrescente. Podemos ordenar um conjunto de números por ordem crescem ou
decrescente. Podemos ordenar um conjunto de nomes por ordem crescente ou decrescente
do seu comprimento.

Vamos considerar a ordenação de vectores de inteiros
Selection Sort
O Selection Sort é considerado um algoritmo de ordenação simples, uma vezes que não usa
estruturas de dados auxiliares e é bastante intuitivo.

Funcionamento:

    1) Pesquisa o elemento mais pequeno e troca do mesmo com o elemento da 1º posição
    2) Pesquisa o elemento segundo elemento mais pequeno e troca com o elemento da
       segunda posição.

Codigo (Selection Sort.jpg)
Insertion Sort
O insertion sort é considerado também um algoritmo de ordenação simples e a sua filosofia é
a seguite: Ir mantendo todos os elementos já considerados pelo algortimo ordenados entre si,
de tal maneira que quando o algoritmo chegar ao final dos dados, eles estaram todos
ordenados.Ou seja, se considerarmos um vector de inteiros, quando o algoritmo está no indice
“ i “ do vector, todos os elementos á esquerda desse indice estam ordenados entre si.

Codigo(Insertion Sort.jpg)
Bubble Sort
O bubble Sort é mais um algoritmo de ordenação simples. O seu funcionamento é baseado na
troca de elementos adjacentes que não estejam em ordem entre si.

Funcionamento:

   1) O Bubble começa no final do vector, e vai trocando todos os elementos adjacentes
      que não estejam em ordem entre si, até chegar à primeira posição do vector. No
      final da 1º passagem o elemento mais pequeno já está na primeira posição do
      vector.
   2) O algoritmo vai de novo fazer trocas com elementos adjacentes, começando no
      último elemento do vector, mas terminando agora ,na segunda posição do vector.
   3) E assim por diante, começando sempre no ultimo elemento do vector e, acabando
      uma posição á frente da posição em que tinha parado na passagem anterior.
   4) O Bubble faz n-1 passagem pelos dados. Onde o n é o numero de elementos para
      ordenar.

   Código ( bubble Sort.jpg)
QuickSort
O QuickSort é um algoritmo avançado de ordenação, o seu inventor foi Charles Antony
Richard Hoare nos anos 60. É um algoritmo muito rápido e eficiente e por natureza
recursivo.

Funcionamento: É escolhido um pivô aleatoriamente e o algoritmo coloca o mesmo na sua
posição final. Depois o algoritmo parte os dados em dois, ficando-se com a parte dos
dados que está á direita e a parte dos dados que está esquerda da posição final do pivô.
Agora o quicksort vai fazer o mesmo a cada uma das duas partes (escolher o pivô, coloca-
lo na posição correcta e depois partir de novo os dados em dois). E assim sucessivamente
até se ficar com vectores com apenas um elemento. Nessa altura o vector inicial está
completamente ordenado.

No exemplo do quicksort vamos considerar que o elemento de partição é sempre o
ultimo elemento da partição em causa.

Mais conteúdo relacionado

Destaque

Jean sancheziiicvei extenso
Jean sancheziiicvei extensoJean sancheziiicvei extenso
Jean sancheziiicvei extensoJean Sanchez
 
Coloque Mais Vida Na Sua AlimentaçãO
Coloque Mais Vida Na Sua AlimentaçãOColoque Mais Vida Na Sua AlimentaçãO
Coloque Mais Vida Na Sua AlimentaçãOMedusa Fabula
 
Receitas Com Banana 06
Receitas Com Banana 06Receitas Com Banana 06
Receitas Com Banana 06Medusa Fabula
 
A Borboleta E O Cavalinho
A Borboleta E O CavalinhoA Borboleta E O Cavalinho
A Borboleta E O Cavalinhoguest7eaf9f
 
PLUGON HOLDINGS COMPANY PROFILE
PLUGON HOLDINGS COMPANY PROFILEPLUGON HOLDINGS COMPANY PROFILE
PLUGON HOLDINGS COMPANY PROFILETsepo lekola
 
Presentacion Facebook
Presentacion FacebookPresentacion Facebook
Presentacion FacebookDiana
 
Receitas Com Banana 05
Receitas Com Banana 05Receitas Com Banana 05
Receitas Com Banana 05Medusa Fabula
 
Segunda Maratón David Carranza
Segunda Maratón David CarranzaSegunda Maratón David Carranza
Segunda Maratón David CarranzaCentro Educativo
 

Destaque (20)

Receitas Cocari
Receitas CocariReceitas Cocari
Receitas Cocari
 
Creme De LimãO
Creme De LimãOCreme De LimãO
Creme De LimãO
 
Jean sancheziiicvei extenso
Jean sancheziiicvei extensoJean sancheziiicvei extenso
Jean sancheziiicvei extenso
 
Actividad semana 3
Actividad semana 3Actividad semana 3
Actividad semana 3
 
Planificador de proyectos
Planificador de proyectosPlanificador de proyectos
Planificador de proyectos
 
Coloque Mais Vida Na Sua AlimentaçãO
Coloque Mais Vida Na Sua AlimentaçãOColoque Mais Vida Na Sua AlimentaçãO
Coloque Mais Vida Na Sua AlimentaçãO
 
Ayala
AyalaAyala
Ayala
 
Receitas Com Banana 06
Receitas Com Banana 06Receitas Com Banana 06
Receitas Com Banana 06
 
Secuencia didactica 24 07
Secuencia didactica 24 07Secuencia didactica 24 07
Secuencia didactica 24 07
 
A Borboleta E O Cavalinho
A Borboleta E O CavalinhoA Borboleta E O Cavalinho
A Borboleta E O Cavalinho
 
Interface
InterfaceInterface
Interface
 
PLUGON HOLDINGS COMPANY PROFILE
PLUGON HOLDINGS COMPANY PROFILEPLUGON HOLDINGS COMPANY PROFILE
PLUGON HOLDINGS COMPANY PROFILE
 
Cartilha bullyng
Cartilha bullyngCartilha bullyng
Cartilha bullyng
 
Pintura com os pés
Pintura com os pésPintura com os pés
Pintura com os pés
 
Funes
FunesFunes
Funes
 
Presentacion Facebook
Presentacion FacebookPresentacion Facebook
Presentacion Facebook
 
Receitas Com Banana 05
Receitas Com Banana 05Receitas Com Banana 05
Receitas Com Banana 05
 
Receitas Toro
Receitas  ToroReceitas  Toro
Receitas Toro
 
Neuromarketing
NeuromarketingNeuromarketing
Neuromarketing
 
Segunda Maratón David Carranza
Segunda Maratón David CarranzaSegunda Maratón David Carranza
Segunda Maratón David Carranza
 

Semelhante a Algorimos De Ordenação

Semelhante a Algorimos De Ordenação (20)

Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetores
 
Aula 4
Aula 4 Aula 4
Aula 4
 
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 trabalho seleção.docx_0
Eda trabalho seleção.docx_0Eda trabalho seleção.docx_0
Eda trabalho seleção.docx_0
 
Quick sort
Quick sortQuick sort
Quick sort
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmos
 
Classificação de dados
Classificação de dadosClassificação de dados
Classificação de dados
 
Fec
FecFec
Fec
 
Algoritmos de busca
Algoritmos de buscaAlgoritmos de busca
Algoritmos de busca
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 
Aulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton YagamiAulas de estrutura de dados por Ayrton Yagami
Aulas de estrutura de dados por Ayrton Yagami
 
Algoritmos de ordenação - heapsort
Algoritmos de ordenação - heapsortAlgoritmos de ordenação - heapsort
Algoritmos de ordenação - heapsort
 
Metodos de ordenação final
Metodos de ordenação   finalMetodos de ordenação   final
Metodos de ordenação final
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
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
 
Lista_Encadeada.pptx
Lista_Encadeada.pptxLista_Encadeada.pptx
Lista_Encadeada.pptx
 
Classes e Estrutura de Dados
Classes e Estrutura de DadosClasses e Estrutura de Dados
Classes e Estrutura de Dados
 
2 referencial teorico
2 referencial teorico2 referencial teorico
2 referencial teorico
 

Mais de Brian Supra

Equações diferenciais de ordem n(metodo dos coeficientes indeterminados)
Equações diferenciais de ordem n(metodo dos coeficientes indeterminados)Equações diferenciais de ordem n(metodo dos coeficientes indeterminados)
Equações diferenciais de ordem n(metodo dos coeficientes indeterminados)Brian Supra
 
Data warehouse & olap
Data warehouse & olapData warehouse & olap
Data warehouse & olapBrian Supra
 
Calculo Das Correntes De Curto
Calculo Das Correntes De CurtoCalculo Das Correntes De Curto
Calculo Das Correntes De CurtoBrian Supra
 
Calculo Das Correntes De Curto
Calculo Das Correntes De CurtoCalculo Das Correntes De Curto
Calculo Das Correntes De CurtoBrian Supra
 
Quedas De Tensão
Quedas De TensãoQuedas De Tensão
Quedas De TensãoBrian Supra
 
Arvores Binarias
Arvores BinariasArvores Binarias
Arvores BinariasBrian Supra
 
Algoritmo de Prim
Algoritmo de PrimAlgoritmo de Prim
Algoritmo de PrimBrian Supra
 

Mais de Brian Supra (10)

Equalizador
EqualizadorEqualizador
Equalizador
 
Equações diferenciais de ordem n(metodo dos coeficientes indeterminados)
Equações diferenciais de ordem n(metodo dos coeficientes indeterminados)Equações diferenciais de ordem n(metodo dos coeficientes indeterminados)
Equações diferenciais de ordem n(metodo dos coeficientes indeterminados)
 
Data warehouse & olap
Data warehouse & olapData warehouse & olap
Data warehouse & olap
 
Calculo Das Correntes De Curto
Calculo Das Correntes De CurtoCalculo Das Correntes De Curto
Calculo Das Correntes De Curto
 
Calculo Das Correntes De Curto
Calculo Das Correntes De CurtoCalculo Das Correntes De Curto
Calculo Das Correntes De Curto
 
Quedas De Tensão
Quedas De TensãoQuedas De Tensão
Quedas De Tensão
 
Arvores Binarias
Arvores BinariasArvores Binarias
Arvores Binarias
 
Variaveis
VariaveisVariaveis
Variaveis
 
Algoritmo de Prim
Algoritmo de PrimAlgoritmo de Prim
Algoritmo de Prim
 
Kruskal
KruskalKruskal
Kruskal
 

Algorimos De Ordenação

  • 1. Algoritmos de ordenação Em programação, muitas vezes, há a necessidade de ordenar dados. Se o nosso volume de dados não for muito grande, não há problema se escolhermos um algoritmo de ordenação eficaz ou não. Simplesmente quando o volume de dados é reduzido o tempo de execução de um algoritmo de ordenação mais elementar é igual ou inferior ao tempo de execução de um algoritmo mais avançado de ordenação. Os algoritmos mais avançados executam mais instruções e utilização maior quantidade estruturas de dados auxiliares. É com o aumento do volume dos dados, que a manipulação destas estruturas de dados revela a sua utilidade e a sua contribuição para uma ordenação mais rápida. Para ordenar, o algoritmo só precisa de saber qual é a chave de ordenação, a partir dai ele manipula os elementos a ordenar, considerando como elemento de comparação a chave que lhe for dada. Por exemplo, podemos ordenar um conjunto de nomes por ordem alfabética crescente ou decrescente. Podemos ordenar um conjunto de números por ordem crescem ou decrescente. Podemos ordenar um conjunto de nomes por ordem crescente ou decrescente do seu comprimento. Vamos considerar a ordenação de vectores de inteiros
  • 2. Selection Sort O Selection Sort é considerado um algoritmo de ordenação simples, uma vezes que não usa estruturas de dados auxiliares e é bastante intuitivo. Funcionamento: 1) Pesquisa o elemento mais pequeno e troca do mesmo com o elemento da 1º posição 2) Pesquisa o elemento segundo elemento mais pequeno e troca com o elemento da segunda posição. Codigo (Selection Sort.jpg)
  • 3. Insertion Sort O insertion sort é considerado também um algoritmo de ordenação simples e a sua filosofia é a seguite: Ir mantendo todos os elementos já considerados pelo algortimo ordenados entre si, de tal maneira que quando o algoritmo chegar ao final dos dados, eles estaram todos ordenados.Ou seja, se considerarmos um vector de inteiros, quando o algoritmo está no indice “ i “ do vector, todos os elementos á esquerda desse indice estam ordenados entre si. Codigo(Insertion Sort.jpg)
  • 4. Bubble Sort O bubble Sort é mais um algoritmo de ordenação simples. O seu funcionamento é baseado na troca de elementos adjacentes que não estejam em ordem entre si. Funcionamento: 1) O Bubble começa no final do vector, e vai trocando todos os elementos adjacentes que não estejam em ordem entre si, até chegar à primeira posição do vector. No final da 1º passagem o elemento mais pequeno já está na primeira posição do vector. 2) O algoritmo vai de novo fazer trocas com elementos adjacentes, começando no último elemento do vector, mas terminando agora ,na segunda posição do vector. 3) E assim por diante, começando sempre no ultimo elemento do vector e, acabando uma posição á frente da posição em que tinha parado na passagem anterior. 4) O Bubble faz n-1 passagem pelos dados. Onde o n é o numero de elementos para ordenar. Código ( bubble Sort.jpg)
  • 5. QuickSort O QuickSort é um algoritmo avançado de ordenação, o seu inventor foi Charles Antony Richard Hoare nos anos 60. É um algoritmo muito rápido e eficiente e por natureza recursivo. Funcionamento: É escolhido um pivô aleatoriamente e o algoritmo coloca o mesmo na sua posição final. Depois o algoritmo parte os dados em dois, ficando-se com a parte dos dados que está á direita e a parte dos dados que está esquerda da posição final do pivô. Agora o quicksort vai fazer o mesmo a cada uma das duas partes (escolher o pivô, coloca- lo na posição correcta e depois partir de novo os dados em dois). E assim sucessivamente até se ficar com vectores com apenas um elemento. Nessa altura o vector inicial está completamente ordenado. No exemplo do quicksort vamos considerar que o elemento de partição é sempre o ultimo elemento da partição em causa.