Apresentação realizada no ano de 2011, para o curso de Análise e Desenvolvimento de Sistemas da Unicamp, na matéria de Estrutura de Dados. O objetivo era abordar algoritmos de ordenação, e o nosso grupo ficou responsável por apresentar o Bubble Sort (o mais simples e subestimado dos algoritmos)
#nostalgia
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
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
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.