SlideShare uma empresa Scribd logo
1 de 39
 Bruno Oliveira
 Franciele Martins
 Ricardo Mattos
 Rodrigo Asbahr
 Selma Cavalheiro
Franciele
 Introdução
 Definição
 Método
 Eficiência
 Bubble Sort com Pipelining
 Odd -Even Sort
 Aplicações
 Exemplo
 Conclusão
 Referências Bibliográficas
 Dúvidas
Franciele
 Ordenação:colocar os elementos em uma
sequência de informações, ou dados, em uma
relação de ordem predefinida.
 Um algoritmo que ordena um conjunto,
geralmente representado em um vetor, é
chamado de algoritmo de ordenação.
 Acessa dados de modo:
Franciele
 Para obtermos os dados ordenados, temos duas
alternativas:
Franciele
 Bubble sort, é o algoritmo de ordenação mais
conhecido e popular
 Simples de entender e implementar
 Usa a estratégia de “comparação e troca”, que é
aplicada em várias iterações sobre os dados a
serem ordenados
Franciele
77 9911
00
 A idéia é fazer os elementos flutuarem
Franciele
 Pretende-se ordenar os elementos de um array.
 Serão ordenados desde a primeira até à última
posição, na qual em cada iteração da ordenação
é calculado o maior/menor valor dos elementos
que ainda faltam ordenar.
10 8 6 2 16 4 18 11 14 12
Ricardo
10 8 6 2 16 4 18 11 14 12
108 6 2 16 4 18 11 14 12
108 6 2 16 4 18 11 14 12
Compara os dois elementos e troca
Compara os dois elementos e troca
Compara os dois elementos e troca
108 6 2 16 4 18 11 14 12
Compara os dois elementos e troca
Ricardo
 No final da 1ª iteração:
 O maior elemento está em último lugar.
Pode-se dizer que o elemento nº 18 saltou
“borbulhou” para a sua posição correta.
 O processo volta a repetir-se, só que desta vez ele
pode parar antes do elemento nº 18, dado que ele
já se encontra no lugar correto.
Ricardo
 Tempos de Ordenação (sendo n o número de
elementos a ordenar)
 Obs.: A complexidade desse algoritmo é de Ordem quadrática. Por isso, ele não é
recomendado para programas que precisem de velocidade e operem com
quantidade elevada de dados.
 Melhor caso: n2
/2
Verifica-se quando o vetor já está ordenado.
 Pior caso: n2
Verifica-se quando o vetor está ordenado na ordem inversa.
Ricardo
 O pipelining é possivel pois as iterações de cada
fase vão percorrendo o vector, não necessitando
posteriormente de valores anteriores
 Ou seja, quando a primeira fase já se encontra na
comparação de x2 e x3, a segunda fase já pode
usar os valores x0 e x1 para comparação.
Rodrigo
Rodrigo
259131721
259132117
259211317
252191713
221517913
Fase 1
Fase 1
Fase 1
Fase 1
Fase 1
Fase 2
Fase 2
Fase 2Fase 3
Rodrigo
 É uma variante do algoritmo Bubble Sort
 Constituído por duas fases distintas:
◦ Fase even (par)
◦ Fase odd (ímpar)
 Na fase even (par) comparam-se as posições (índices) pares
com a posição seguinte a cada uma delas
 Na fase odd (ímpar) comparam-se as posições (índices)
ímpares com a posição seguinte a cada uma delas
Bruno
Bruno
Posição 1
Loops Totais 1
Loops Odd 1
Loops Even 0
0 1 2 3 4 5
6 5 4 3 2 1
0 1 2 3 4 5
6 4 5 3 2 1
Bruno
Posição 3
Loops Totais 2
Loops Odd 2
Loops Even 0
0 1 2 3 4 5
6 4 5 3 2 1
0 1 2 3 4 5
6 4 5 2 3 1
Bruno
Posição 0
Loops Totais 3
Loops Odd 2
Loops Even 1
0 1 2 3 4 5
6 4 5 2 3 1
0 1 2 3 4 5
4 6 5 2 3 1
Bruno
Posição 2
Loops Totais 4
Loops Odd 2
Loops Even 2
0 1 2 3 4 5
4 6 5 2 3 1
0 1 2 3 4 5
4 6 2 5 3 1
Bruno
Posição 4
Loops Totais 5
Loops Odd 2
Loops Even 3
0 1 2 3 4 5
4 6 2 5 3 1
0 1 2 3 4 5
4 6 2 5 1 3
Bruno
Posição 1
Loops Totais 6
Loops Odd 3
Loops Even 3
0 1 2 3 4 5
4 6 2 5 1 3
0 1 2 3 4 5
4 2 6 5 1 3
Bruno
Posição 3
Loops Totais 7
Loops Odd 4
Loops Even 3
0 1 2 3 4 5
4 2 6 5 1 3
0 1 2 3 4 5
4 2 6 1 5 3
Bruno
Posição 0
Loops Totais 8
Loops Odd 4
Loops Even 4
0 1 2 3 4 5
4 2 6 1 5 3
0 1 2 3 4 5
2 4 6 1 5 3
Bruno
Posição 2
Loops Totais 9
Loops Odd 4
Loops Even 5
0 1 2 3 4 5
2 4 6 1 5 3
0 1 2 3 4 5
2 4 1 6 5 3
Bruno
Posição 4
Loops Totais 10
Loops Odd 4
Loops Even 6
0 1 2 3 4 5
2 4 1 6 5 3
0 1 2 3 4 5
2 4 1 6 3 5
Bruno
Posição 1
Loops Totais 11
Loops Odd 5
Loops Even 6
0 1 2 3 4 5
2 4 1 6 3 5
0 1 2 3 4 5
2 1 4 6 3 5
Bruno
Posição 3
Loops Totais 12
Loops Odd 6
Loops Even 6
0 1 2 3 4 5
2 1 4 6 3 5
0 1 2 3 4 5
2 1 4 3 6 5
Bruno
Posição 0
Loops Totais 13
Loops Odd 7
Loops Even 6
0 1 2 3 4 5
2 1 4 3 6 5
0 1 2 3 4 5
1 2 4 3 6 5
Bruno
Posição 2
Loops Totais 14
Loops Odd 8
Loops Even 6
0 1 2 3 4 5
1 2 4 3 6 5
0 1 2 3 4 5
1 2 3 4 6 5
Bruno
Posição 4
Loops Totais 15
Loops Odd 9
Loops Even 6
0 1 2 3 4 5
1 2 3 4 6 5
0 1 2 3 4 5
1 2 3 4 5 6
20 Loops(Bubble Sort)
Exemplo de código:
void Bolha (Vetor A; Indice item) {
Indice context, contint;
Item temp;
  for (context = item-1; context >= 1; context --) {
for (contint = 0; contint < context ; contint ++) {
if (A[contint] < A[contint +1]) {
temp = A[contint];
A[contint]= A[contint +1];
A[contint +1] = temp;
}
}
}
}
Selma
Um teste feito pela UFSC conclui que:
 Pior caso,
 Melhor caso, ou
 Médio caso,
Apresentam quase o mesmo tempo de execução.
Selma
Exemplo de código:
void Bolha (Vetor A; Indice item) {
Indice context, contint;
Item temp;
char troca;
troca = TRUE;
  for (context = item-1; (i context >= 1) && (troca == TRUE); context --) {
troca = FALSE;
for (contint = 0; contint < context ; contint ++) {
if (A[contint] < A[contint +1]) {
temp = A[contint];
A[contint]= A[contint +1];
A[contint +1] = temp;
troca = TRUE;
}
}
}
}
Selma
Selma
Jogo dos Iguais:
void Gravidade(peca **tabuleiro)
{
int temporario, queda;
posicao p;
for(p.coluna=0; p.coluna<COLUNAS; p.coluna++)
{
for(queda=0; queda<LINHAS; queda++)
{
for(p.linha=0; p.linha<LINHAS-1; p.linha++)
{
if(tabuleiro[p.linha+1][p.coluna] == 0)
{
temporario=tabuleiro[p.linha][p.coluna];
tabuleiro[p.linha][p.coluna]=tabuleiro[p.linha+1][p.coluna];
tabuleiro[p.linha+1][p.coluna]=temporario;
}
}
}
}
}
Selma
Franciele
 Necessário conhecimento profundo dos métodos
de ordenação e capacidade de avaliação do
melhor método para implementação.
Selma
 TORRÃO, C.; MARTINS, J.; COUCEIRO, M. Algoritmos de
Ordenação. Disponível em http://algos.inesc-
id.pt/~jcm/cpd/papers/2a5/Algoritmos%20de%20Ordena
%C3%A7%C3%A3o.pdf. Acesso em 13 Mai. 2011.
 SCHILDT, H. C Completo e Total– Ed Makron Books
 WANGENHEIM, A. Disponível em
http://www.inf.ufsc.br/~awangenh/Analise/Exercicio-
Ordena.html. Acesso em 13 Mai. 2011.
Algoritmos de ordenação: Bubble Sort e Odd-Even Sort

Mais conteúdo relacionado

Mais procurados

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 }Mariana Camargo
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de DadosLeinylson Fontinele
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e bináriasSérgio Souza Costa
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Matemática Discreta - Fundamentos
Matemática Discreta - FundamentosMatemática Discreta - Fundamentos
Matemática Discreta - FundamentosRanilson Paiva
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHASAparicio Junior
 
Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacionalHélio Martins
 
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
 
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Leinylson Fontinele
 
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
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 

Mais procurados (20)

Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
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 }
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e binárias
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Matemática Discreta - Fundamentos
Matemática Discreta - FundamentosMatemática Discreta - Fundamentos
Matemática Discreta - Fundamentos
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHAS
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Aula 4 modelo relacional
Aula 4   modelo relacionalAula 4   modelo relacional
Aula 4 modelo relacional
 
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
 
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
Banco de Dados II Aula 05 - Modelagem de Dados (Normalização de dados e as fo...
 
Grafos e Árvores
Grafos e ÁrvoresGrafos e Árvores
Grafos e Árvores
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 

Mais de Bruno Oliveira

Construtivismo Imersivo - Revisão Sistemática da Literatura
Construtivismo Imersivo - Revisão Sistemática da LiteraturaConstrutivismo Imersivo - Revisão Sistemática da Literatura
Construtivismo Imersivo - Revisão Sistemática da LiteraturaBruno Oliveira
 
Visão geral de big data e mercado financeiro
Visão geral de big data e mercado financeiroVisão geral de big data e mercado financeiro
Visão geral de big data e mercado financeiroBruno Oliveira
 
Meio Ambiente com IoT na USP
Meio Ambiente com IoT na USPMeio Ambiente com IoT na USP
Meio Ambiente com IoT na USPBruno Oliveira
 
Explorando novas tecnicas de comunicacao
Explorando novas tecnicas de comunicacaoExplorando novas tecnicas de comunicacao
Explorando novas tecnicas de comunicacaoBruno Oliveira
 
Pensamento estratégico e geração de vantagem competitiva
Pensamento estratégico e geração de vantagem competitivaPensamento estratégico e geração de vantagem competitiva
Pensamento estratégico e geração de vantagem competitivaBruno Oliveira
 
Projeto de pesquisa - Tecnologias imersivas e letramento financeiro
Projeto de pesquisa - Tecnologias imersivas e letramento financeiroProjeto de pesquisa - Tecnologias imersivas e letramento financeiro
Projeto de pesquisa - Tecnologias imersivas e letramento financeiroBruno Oliveira
 
Computação em Névoa - Introdução, estado da arte e aplicações
Computação em Névoa - Introdução, estado da arte e aplicaçõesComputação em Névoa - Introdução, estado da arte e aplicações
Computação em Névoa - Introdução, estado da arte e aplicaçõesBruno Oliveira
 
EmoFindAR - Avaliação de jogo de realidade aumentada em crianças de escola pr...
EmoFindAR - Avaliação de jogo de realidade aumentada em crianças de escola pr...EmoFindAR - Avaliação de jogo de realidade aumentada em crianças de escola pr...
EmoFindAR - Avaliação de jogo de realidade aumentada em crianças de escola pr...Bruno Oliveira
 
Revisão do uso de Realidade Virtual na Educação
Revisão do uso de Realidade Virtual na EducaçãoRevisão do uso de Realidade Virtual na Educação
Revisão do uso de Realidade Virtual na EducaçãoBruno Oliveira
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na NévoaBruno Oliveira
 
Analise da proposta de valor (fintech)
Analise da proposta de valor (fintech)Analise da proposta de valor (fintech)
Analise da proposta de valor (fintech)Bruno Oliveira
 
Caso Michigan - ITS (Sistema de Transporte Inteligente)
Caso Michigan - ITS (Sistema de Transporte Inteligente)Caso Michigan - ITS (Sistema de Transporte Inteligente)
Caso Michigan - ITS (Sistema de Transporte Inteligente)Bruno Oliveira
 
Modelagem de sistemas - Pensamento sistêmico
Modelagem de sistemas - Pensamento sistêmicoModelagem de sistemas - Pensamento sistêmico
Modelagem de sistemas - Pensamento sistêmicoBruno Oliveira
 
Alocação dinâmica em C
Alocação dinâmica em CAlocação dinâmica em C
Alocação dinâmica em CBruno Oliveira
 
Política e cultura de segurança da informação - aspectos burocráticos
Política e cultura de segurança da informação - aspectos burocráticosPolítica e cultura de segurança da informação - aspectos burocráticos
Política e cultura de segurança da informação - aspectos burocráticosBruno Oliveira
 
Pensando comunicação homem máquina (em termos de ergonomia)
Pensando comunicação homem máquina (em termos de ergonomia)Pensando comunicação homem máquina (em termos de ergonomia)
Pensando comunicação homem máquina (em termos de ergonomia)Bruno Oliveira
 
Labirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafosLabirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafosBruno Oliveira
 

Mais de Bruno Oliveira (20)

Construtivismo Imersivo - Revisão Sistemática da Literatura
Construtivismo Imersivo - Revisão Sistemática da LiteraturaConstrutivismo Imersivo - Revisão Sistemática da Literatura
Construtivismo Imersivo - Revisão Sistemática da Literatura
 
Visão geral de big data e mercado financeiro
Visão geral de big data e mercado financeiroVisão geral de big data e mercado financeiro
Visão geral de big data e mercado financeiro
 
Meio Ambiente com IoT na USP
Meio Ambiente com IoT na USPMeio Ambiente com IoT na USP
Meio Ambiente com IoT na USP
 
Wear Pay
Wear PayWear Pay
Wear Pay
 
Explorando novas tecnicas de comunicacao
Explorando novas tecnicas de comunicacaoExplorando novas tecnicas de comunicacao
Explorando novas tecnicas de comunicacao
 
Pensamento estratégico e geração de vantagem competitiva
Pensamento estratégico e geração de vantagem competitivaPensamento estratégico e geração de vantagem competitiva
Pensamento estratégico e geração de vantagem competitiva
 
Projeto de pesquisa - Tecnologias imersivas e letramento financeiro
Projeto de pesquisa - Tecnologias imersivas e letramento financeiroProjeto de pesquisa - Tecnologias imersivas e letramento financeiro
Projeto de pesquisa - Tecnologias imersivas e letramento financeiro
 
Computação em Névoa - Introdução, estado da arte e aplicações
Computação em Névoa - Introdução, estado da arte e aplicaçõesComputação em Névoa - Introdução, estado da arte e aplicações
Computação em Névoa - Introdução, estado da arte e aplicações
 
EmoFindAR - Avaliação de jogo de realidade aumentada em crianças de escola pr...
EmoFindAR - Avaliação de jogo de realidade aumentada em crianças de escola pr...EmoFindAR - Avaliação de jogo de realidade aumentada em crianças de escola pr...
EmoFindAR - Avaliação de jogo de realidade aumentada em crianças de escola pr...
 
Revisão do uso de Realidade Virtual na Educação
Revisão do uso de Realidade Virtual na EducaçãoRevisão do uso de Realidade Virtual na Educação
Revisão do uso de Realidade Virtual na Educação
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na Névoa
 
BC - Feedbacks
BC - FeedbacksBC - Feedbacks
BC - Feedbacks
 
Analise da proposta de valor (fintech)
Analise da proposta de valor (fintech)Analise da proposta de valor (fintech)
Analise da proposta de valor (fintech)
 
Humaniza tecnocare
Humaniza tecnocareHumaniza tecnocare
Humaniza tecnocare
 
Caso Michigan - ITS (Sistema de Transporte Inteligente)
Caso Michigan - ITS (Sistema de Transporte Inteligente)Caso Michigan - ITS (Sistema de Transporte Inteligente)
Caso Michigan - ITS (Sistema de Transporte Inteligente)
 
Modelagem de sistemas - Pensamento sistêmico
Modelagem de sistemas - Pensamento sistêmicoModelagem de sistemas - Pensamento sistêmico
Modelagem de sistemas - Pensamento sistêmico
 
Alocação dinâmica em C
Alocação dinâmica em CAlocação dinâmica em C
Alocação dinâmica em C
 
Política e cultura de segurança da informação - aspectos burocráticos
Política e cultura de segurança da informação - aspectos burocráticosPolítica e cultura de segurança da informação - aspectos burocráticos
Política e cultura de segurança da informação - aspectos burocráticos
 
Pensando comunicação homem máquina (em termos de ergonomia)
Pensando comunicação homem máquina (em termos de ergonomia)Pensando comunicação homem máquina (em termos de ergonomia)
Pensando comunicação homem máquina (em termos de ergonomia)
 
Labirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafosLabirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafos
 

Algoritmos de ordenação: Bubble Sort e Odd-Even Sort

  • 1.
  • 2.  Bruno Oliveira  Franciele Martins  Ricardo Mattos  Rodrigo Asbahr  Selma Cavalheiro Franciele
  • 3.  Introdução  Definição  Método  Eficiência  Bubble Sort com Pipelining  Odd -Even Sort  Aplicações  Exemplo  Conclusão  Referências Bibliográficas  Dúvidas Franciele
  • 4.  Ordenação:colocar os elementos em uma sequência de informações, ou dados, em uma relação de ordem predefinida.  Um algoritmo que ordena um conjunto, geralmente representado em um vetor, é chamado de algoritmo de ordenação.  Acessa dados de modo: Franciele
  • 5.  Para obtermos os dados ordenados, temos duas alternativas: Franciele
  • 6.  Bubble sort, é o algoritmo de ordenação mais conhecido e popular  Simples de entender e implementar  Usa a estratégia de “comparação e troca”, que é aplicada em várias iterações sobre os dados a serem ordenados Franciele
  • 7. 77 9911 00  A idéia é fazer os elementos flutuarem Franciele
  • 8.  Pretende-se ordenar os elementos de um array.  Serão ordenados desde a primeira até à última posição, na qual em cada iteração da ordenação é calculado o maior/menor valor dos elementos que ainda faltam ordenar. 10 8 6 2 16 4 18 11 14 12 Ricardo
  • 9. 10 8 6 2 16 4 18 11 14 12 108 6 2 16 4 18 11 14 12 108 6 2 16 4 18 11 14 12 Compara os dois elementos e troca Compara os dois elementos e troca Compara os dois elementos e troca 108 6 2 16 4 18 11 14 12 Compara os dois elementos e troca Ricardo
  • 10.  No final da 1ª iteração:  O maior elemento está em último lugar. Pode-se dizer que o elemento nº 18 saltou “borbulhou” para a sua posição correta.  O processo volta a repetir-se, só que desta vez ele pode parar antes do elemento nº 18, dado que ele já se encontra no lugar correto. Ricardo
  • 11.  Tempos de Ordenação (sendo n o número de elementos a ordenar)  Obs.: A complexidade desse algoritmo é de Ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados.  Melhor caso: n2 /2 Verifica-se quando o vetor já está ordenado.  Pior caso: n2 Verifica-se quando o vetor está ordenado na ordem inversa. Ricardo
  • 12.  O pipelining é possivel pois as iterações de cada fase vão percorrendo o vector, não necessitando posteriormente de valores anteriores  Ou seja, quando a primeira fase já se encontra na comparação de x2 e x3, a segunda fase já pode usar os valores x0 e x1 para comparação. Rodrigo
  • 14. 259131721 259132117 259211317 252191713 221517913 Fase 1 Fase 1 Fase 1 Fase 1 Fase 1 Fase 2 Fase 2 Fase 2Fase 3 Rodrigo
  • 15.  É uma variante do algoritmo Bubble Sort  Constituído por duas fases distintas: ◦ Fase even (par) ◦ Fase odd (ímpar)  Na fase even (par) comparam-se as posições (índices) pares com a posição seguinte a cada uma delas  Na fase odd (ímpar) comparam-se as posições (índices) ímpares com a posição seguinte a cada uma delas Bruno
  • 16. Bruno Posição 1 Loops Totais 1 Loops Odd 1 Loops Even 0 0 1 2 3 4 5 6 5 4 3 2 1 0 1 2 3 4 5 6 4 5 3 2 1
  • 17. Bruno Posição 3 Loops Totais 2 Loops Odd 2 Loops Even 0 0 1 2 3 4 5 6 4 5 3 2 1 0 1 2 3 4 5 6 4 5 2 3 1
  • 18. Bruno Posição 0 Loops Totais 3 Loops Odd 2 Loops Even 1 0 1 2 3 4 5 6 4 5 2 3 1 0 1 2 3 4 5 4 6 5 2 3 1
  • 19. Bruno Posição 2 Loops Totais 4 Loops Odd 2 Loops Even 2 0 1 2 3 4 5 4 6 5 2 3 1 0 1 2 3 4 5 4 6 2 5 3 1
  • 20. Bruno Posição 4 Loops Totais 5 Loops Odd 2 Loops Even 3 0 1 2 3 4 5 4 6 2 5 3 1 0 1 2 3 4 5 4 6 2 5 1 3
  • 21. Bruno Posição 1 Loops Totais 6 Loops Odd 3 Loops Even 3 0 1 2 3 4 5 4 6 2 5 1 3 0 1 2 3 4 5 4 2 6 5 1 3
  • 22. Bruno Posição 3 Loops Totais 7 Loops Odd 4 Loops Even 3 0 1 2 3 4 5 4 2 6 5 1 3 0 1 2 3 4 5 4 2 6 1 5 3
  • 23. Bruno Posição 0 Loops Totais 8 Loops Odd 4 Loops Even 4 0 1 2 3 4 5 4 2 6 1 5 3 0 1 2 3 4 5 2 4 6 1 5 3
  • 24. Bruno Posição 2 Loops Totais 9 Loops Odd 4 Loops Even 5 0 1 2 3 4 5 2 4 6 1 5 3 0 1 2 3 4 5 2 4 1 6 5 3
  • 25. Bruno Posição 4 Loops Totais 10 Loops Odd 4 Loops Even 6 0 1 2 3 4 5 2 4 1 6 5 3 0 1 2 3 4 5 2 4 1 6 3 5
  • 26. Bruno Posição 1 Loops Totais 11 Loops Odd 5 Loops Even 6 0 1 2 3 4 5 2 4 1 6 3 5 0 1 2 3 4 5 2 1 4 6 3 5
  • 27. Bruno Posição 3 Loops Totais 12 Loops Odd 6 Loops Even 6 0 1 2 3 4 5 2 1 4 6 3 5 0 1 2 3 4 5 2 1 4 3 6 5
  • 28. Bruno Posição 0 Loops Totais 13 Loops Odd 7 Loops Even 6 0 1 2 3 4 5 2 1 4 3 6 5 0 1 2 3 4 5 1 2 4 3 6 5
  • 29. Bruno Posição 2 Loops Totais 14 Loops Odd 8 Loops Even 6 0 1 2 3 4 5 1 2 4 3 6 5 0 1 2 3 4 5 1 2 3 4 6 5
  • 30. Bruno Posição 4 Loops Totais 15 Loops Odd 9 Loops Even 6 0 1 2 3 4 5 1 2 3 4 6 5 0 1 2 3 4 5 1 2 3 4 5 6 20 Loops(Bubble Sort)
  • 31. Exemplo de código: void Bolha (Vetor A; Indice item) { Indice context, contint; Item temp;   for (context = item-1; context >= 1; context --) { for (contint = 0; contint < context ; contint ++) { if (A[contint] < A[contint +1]) { temp = A[contint]; A[contint]= A[contint +1]; A[contint +1] = temp; } } } } Selma
  • 32. Um teste feito pela UFSC conclui que:  Pior caso,  Melhor caso, ou  Médio caso, Apresentam quase o mesmo tempo de execução. Selma
  • 33. Exemplo de código: void Bolha (Vetor A; Indice item) { Indice context, contint; Item temp; char troca; troca = TRUE;   for (context = item-1; (i context >= 1) && (troca == TRUE); context --) { troca = FALSE; for (contint = 0; contint < context ; contint ++) { if (A[contint] < A[contint +1]) { temp = A[contint]; A[contint]= A[contint +1]; A[contint +1] = temp; troca = TRUE; } } } } Selma
  • 35. void Gravidade(peca **tabuleiro) { int temporario, queda; posicao p; for(p.coluna=0; p.coluna<COLUNAS; p.coluna++) { for(queda=0; queda<LINHAS; queda++) { for(p.linha=0; p.linha<LINHAS-1; p.linha++) { if(tabuleiro[p.linha+1][p.coluna] == 0) { temporario=tabuleiro[p.linha][p.coluna]; tabuleiro[p.linha][p.coluna]=tabuleiro[p.linha+1][p.coluna]; tabuleiro[p.linha+1][p.coluna]=temporario; } } } } } Selma
  • 37.  Necessário conhecimento profundo dos métodos de ordenação e capacidade de avaliação do melhor método para implementação. Selma
  • 38.  TORRÃO, C.; MARTINS, J.; COUCEIRO, M. Algoritmos de Ordenação. Disponível em http://algos.inesc- id.pt/~jcm/cpd/papers/2a5/Algoritmos%20de%20Ordena %C3%A7%C3%A3o.pdf. Acesso em 13 Mai. 2011.  SCHILDT, H. C Completo e Total– Ed Makron Books  WANGENHEIM, A. Disponível em http://www.inf.ufsc.br/~awangenh/Analise/Exercicio- Ordena.html. Acesso em 13 Mai. 2011.