SlideShare a Scribd company logo
1 of 104
Universidade Presbiteriana Mackenzie	
  
Aula	
  3:	
  Bubble	
  Sort	
  
Prof. Ms. Daniel Arndt Alves
Faculdade	
  de	
  Computação	
  e	
  Informá;ca	
  
Computação e Informática
Faculdade de
Estrutura	
  de	
  
Dados	
  II	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   1	
  
Tópicos	
  da	
  Aula	
  
•  Ordenação	
  de	
  Vetores	
  
•  Algoritmos	
  de	
  Ordenação	
  
•  Bubble	
  Sort	
  
•  Complexidade	
  Computacional	
  
•  Exemplo	
  Animado	
  
•  Observações	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   2	
  
Ordenação de Vetores
•  Por vezes é necessário ordenar um vetor de
forma crescente ou decrescente.
•  Por vezes é necessário que as strings
contidas num vetor estejam ordenadas
alfabeticamente.
•  Algoritmos de ordenação são fáceis de
adaptar de forma a ordenar qualquer que
seja a ordem que se pretende.
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   3	
  
Algoritmos	
  de	
  Ordenação	
  
•  Ordenação	
  =	
  Sort	
  
•  Rearranjar	
  os	
  elementos	
  de	
  
um	
  array	
  (banco	
  de	
  dados)	
  de	
  modo	
  a	
  que	
  
obedeçam	
  a	
  um	
  certo	
  critério	
  de	
  ordem.	
  
– Ordem	
  numérica	
  
– Ordem	
  lexicográfica	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   4	
  
Algoritmos	
  de	
  Ordenação	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   5	
  
512354277 101
1 2 3 4 5 6
5 12 35 42 77 101
1 2 3 4 5 6
Algoritmos	
  de	
  Ordenação	
  
•  Metodologias:	
  troca,	
  inserção,	
  
seleção,	
  intercalação,	
  
distribuição	
  de	
  chaves	
  
– Chave:	
  componente	
  de	
  uma	
  
estrutura,	
  ou	
  de	
  um	
  registro	
  de	
  banco	
  de	
  dados,	
  
segundo	
  o	
  qual	
  se	
  realiza	
  a	
  ordenação.	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   6	
  
Bubble	
  Sort	
  
•  Percorrer	
  a	
  coleção	
  e	
  elementos	
  
– Movimentação	
  do	
  início	
  ao	
  fim	
  do	
  vetor	
  
– “Bubble” o	
  maior	
  valor	
  ao	
  final	
  do	
  vetor	
  
uYlizando	
  pares	
  de	
  comparações	
  e	
  trocas	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   7	
  
512354277 101
1 2 3 4 5 6
Bubble	
  Sort	
  
•  Percorrer	
  a	
  coleção	
  e	
  elementos	
  
– Movimentação	
  do	
  início	
  ao	
  fim	
  do	
  vetor	
  
– “Bubble” o	
  maior	
  valor	
  ao	
  final	
  do	
  vetor	
  
uYlizando	
  pares	
  de	
  comparações	
  e	
  trocas	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   8	
  
512354277 101
1 2 3 4 5 6
Swap42 77
Bubble	
  Sort	
  
•  Percorrer	
  a	
  coleção	
  e	
  elementos	
  
– Movimentação	
  do	
  início	
  ao	
  fim	
  do	
  vetor	
  
– “Bubble” o	
  maior	
  valor	
  ao	
  final	
  do	
  vetor	
  
uYlizando	
  pares	
  de	
  comparações	
  e	
  trocas	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   9	
  
512357742 101
1 2 3 4 5 6
Swap35 77
Bubble	
  Sort	
  
•  Percorrer	
  a	
  coleção	
  e	
  elementos	
  
– Movimentação	
  do	
  início	
  ao	
  fim	
  do	
  vetor	
  
– “Bubble” o	
  maior	
  valor	
  ao	
  final	
  do	
  vetor	
  
uYlizando	
  pares	
  de	
  comparações	
  e	
  trocas	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   10	
  
512773542 101
1 2 3 4 5 6
Swap12 77
Bubble	
  Sort	
  
•  Percorrer	
  a	
  coleção	
  e	
  elementos	
  
– Movimentação	
  do	
  início	
  ao	
  fim	
  do	
  vetor	
  
– “Bubble” o	
  maior	
  valor	
  ao	
  final	
  do	
  vetor	
  
uYlizando	
  pares	
  de	
  comparações	
  e	
  trocas	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   11	
  
577123542 101
1 2 3 4 5 6
Não há necessidade de swap
Bubble	
  Sort	
  
•  Percorrer	
  a	
  coleção	
  e	
  elementos	
  
– Movimentação	
  do	
  início	
  ao	
  fim	
  do	
  vetor	
  
– “Bubble” o	
  maior	
  valor	
  ao	
  final	
  do	
  vetor	
  
uYlizando	
  pares	
  de	
  comparações	
  e	
  trocas	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   12	
  
577123542 101
1 2 3 4 5 6
Swap5 101
Bubble	
  Sort	
  
•  Percorrer	
  a	
  coleção	
  e	
  elementos	
  
– Movimentação	
  do	
  início	
  ao	
  fim	
  do	
  vetor	
  
– “Bubble” o	
  maior	
  valor	
  ao	
  final	
  do	
  vetor	
  
uYlizando	
  pares	
  de	
  comparações	
  e	
  trocas	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   13	
  
77123542 5
1 2 3 4 5 6
101
Maior valor posicionado corretamente
Bubble	
  Sort	
  
•  Note	
  que	
  somente	
  o	
  elemento	
  de	
  maior	
  valor	
  
está	
  posicionado	
  corretamente	
  
•  Todos	
  os	
  demais	
  valores	
  conYnuam	
  fora	
  de	
  
ordem	
  
•  Então,	
  precisamos	
  repeYr	
  este	
  processo	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   14	
  
77123542 5
1 2 3 4 5 6
101
Maior valor posicionado corretamente
Bubble	
  Sort	
  
•  RepeYr	
  quantas	
  vezes?	
  
– Se	
  temos	
  N	
  elementos…	
  
– Se,	
  a	
  cada	
  iteração,	
  nós	
  posicionamos	
  um	
  
elemento	
  corretamente…	
  
– Então	
  nós	
  repeYmos	
  o	
  processo	
  N	
  –	
  1	
  vezes.	
  
– Desta	
  forma,	
  garanYmos	
  o	
  correto	
  
posicionamento	
  dos	
  N	
  elementos.	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   15	
  
Bubble	
  Sort	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   16	
  
77123542 5
1 2 3 4 5 6
101
5421235 77
1 2 3 4 5 6
101
4253512 77
1 2 3 4 5 6
101
4235512 77
1 2 3 4 5 6
101
4235125 77
1 2 3 4 5 6
101
N-1
Bubble	
  Sort	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   17	
  
12354277 101
1 2 3 4 5 6
5
77123542 5
1 2 3 4 5 6
101
5421235 77
1 2 3 4 5 6
101
4253512 77
1 2 3 4 5 6
101
4235512 77
1 2 3 4 5 6
101
Bubble	
  Sort	
  
•  Na	
  Nésima	
  iteração, precisamos apenas de	
  
MAX-­‐N	
  comparações.	
  
•  Por	
  exemplo:	
  
– Esa	
  é	
  a	
  4a	
  iteração	
  
– MAX	
  é	
  6	
  
– Precisamos	
  apenas	
  de	
  2	
  comparações	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   18	
  
4253512 77
1 2 3 4 5 6
101
Bubble	
  Sort	
  
public class Sort {
public void bubbleSort(int[] v, int n){
int j, k, limit;
limit = n-1
while (true){
k = 0;
for (j = 0; j <= limit - 1; j++){
if (v[j] > v[j+1]){
swap(v, j, j+1);
k = j;
}
}
if (k == 0)
break;
limit = k;
}
}
}
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   19	
  
O	
  Método	
  swap	
  
/**
* Troca a posição de dois elementos de um array de inteiros
* @param v um int array
* @param i índice do elemento a ser trocado
* @param j índice do elemento a ser trocado
*/
public void swap(int[] v, int i, int j){
int temp;
temp = v[i];
v[i] = v[j];
v[j] = temp;
}
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   20	
  
Sobrecarga	
  
public void bubbleSort(int[] v){
bubbleSort(v, v.length);
}
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   21	
  
Invocando	
  o	
  método	
  bubbleSort
public static void main(String[] args){
Sort sort = new Sort();
int[] v;
v = new int[50];
...
sort.bubbleSort(v);
...
int n = umValor;
sort.bubbleSort(v, n);
}
	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   22	
  
Complexidade	
  Computacional	
  
•  Complexidade	
  no	
  tempo:	
  comportamento	
  do	
  
algoritmo	
  no	
  tempo,	
  em	
  função	
  do	
  tamanho	
  
da	
  entrada.	
  
•  Complexidade	
  no	
  espaço:	
  consumo	
  de	
  
memória	
  do	
  algoritmo,	
  em	
  função	
  do	
  
tamanho	
  da	
  entrada.	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   23	
  
Complexidade	
  Computacional	
  
•  Bubble	
  Sort:	
  o	
  tempo	
  gasto	
  na	
  execução	
  do	
  
algoritmo	
  varia	
  em	
  ordem	
  quadráYca	
  em	
  
relação	
  ao	
  número	
  de	
  elementos	
  a	
  serem	
  
ordenados.	
  
– T	
  =	
  O(n2)	
  –	
  Notação	
  “Big	
  O”	
  
– AYvidades	
  mais	
  custosas:	
  
•  Comparações	
  
•  Trocas	
  de	
  Posição	
  (swap)	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   24	
  
Complexidade	
  Computacional	
  
•  Análise	
  informal	
  com	
  base	
  na	
  operação	
  mais	
  
custosa,	
  que	
  é	
  a	
  comparação	
  
– n	
  etapas	
  no	
  pior	
  caso	
  
– Na	
  primeira	
  etapa,	
  são	
  feitas	
  n-­‐1	
  comparações	
  e	
  
trocas,	
  na	
  segunda	
  n-­‐2	
  e	
  assim	
  por	
  diante.	
  
– Temos	
  então,	
  a	
  soma	
  dos	
  termos	
  de	
  uma	
  
progressão	
  aritméYca:	
  
•  (n-­‐1)	
  +	
  (n-­‐2)	
  +	
  …	
  +	
  1	
  
•  	
  	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   25	
  
Total =
n⋅ n −1( )
2
⇒ O n2
( )
Complexidade	
  Computacional	
  
•  Melhor	
  caso:	
  vetor	
  ordenado	
  
•  Pior	
  caso:	
  vetor	
  inverYdo	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   26	
  
Exemplo	
  Animado	
  
674523 14 6 3398 42
1 2 3 4 5 6 7 8
to_do
index
7
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   27	
  
Exemplo	
  Animado	
  
674523 14 6 3398 42
1 2 3 4 5 6 7 8
to_do
index
7
1
N 8 fez_swap false
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   28	
  
Exemplo	
  Animado	
  
674523 14 6 3398 42
1 2 3 4 5 6 7 8
to_do
index
7
1
N 8
Swap
fez_swap false
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   29	
  
Exemplo	
  Animado	
  
674598 14 6 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
1
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   30	
  
Exemplo	
  Animado	
  
674598 14 6 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
2
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   31	
  
Exemplo	
  Animado	
  
674598 14 6 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
2
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   32	
  
Exemplo	
  Animado	
  
679845 14 6 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
2
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   33	
  
Exemplo	
  Animado	
  
679845 14 6 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
3
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   34	
  
Exemplo	
  Animado	
  
679845 14 6 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
3
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   35	
  
Exemplo	
  Animado	
  
671445 98 6 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
3
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   36	
  
Exemplo	
  Animado	
  
671445 98 6 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
4
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   37	
  
Exemplo	
  Animado	
  
671445 98 6 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
4
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   38	
  
Exemplo	
  Animado	
  
671445 6 98 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
4
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   39	
  
Exemplo	
  Animado	
  
671445 6 98 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
5
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   40	
  
Exemplo	
  Animado	
  
671445 6 98 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
5
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   41	
  
Exemplo	
  Animado	
  
981445 6 67 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
5
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   42	
  
Exemplo	
  Animado	
  
981445 6 67 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
6
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   43	
  
Exemplo	
  Animado	
  
981445 6 67 3323 42
1 2 3 4 5 6 7 8
to_do
index
7
6
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   44	
  
Exemplo	
  Animado	
  
331445 6 67 9823 42
1 2 3 4 5 6 7 8
to_do
index
7
6
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   45	
  
Exemplo	
  Animado	
  
331445 6 67 9823 42
1 2 3 4 5 6 7 8
to_do
index
7
7
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   46	
  
Exemplo	
  Animado	
  
331445 6 67 9823 42
1 2 3 4 5 6 7 8
to_do
index
7
7
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   47	
  
Exemplo	
  Animado	
  
331445 6 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
7
7
N 8
Swap
fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   48	
  
Exemplo	
  Animado	
  
331445 6 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
7
8
N 8
Fim da Primeira Iteração
did_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   49	
  
Exemplo	
  Animado	
  
331445 6 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
1
N 8 fez_swap false
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   50	
  
Exemplo	
  Animado	
  
331445 6 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
1
N 8 fez_swap false
No Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   51	
  
Exemplo	
  Animado	
  
331445 6 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
2
N 8 fez_swap false
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   52	
  
Exemplo	
  Animado	
  
331445 6 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
2
N 8 fez_swap false
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   53	
  
Exemplo	
  Animado	
  
334514 6 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
2
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   54	
  
Exemplo	
  Animado	
  
334514 6 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
3
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   55	
  
Exemplo	
  Animado	
  
334514 6 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
3
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   56	
  
Exemplo	
  Animado	
  
33614 45 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
3
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   57	
  
Exemplo	
  Animado	
  
33614 45 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
4
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   58	
  
Exemplo	
  Animado	
  
33614 45 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
4
N 8 fez_swap true
No Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   59	
  
Exemplo	
  Animado	
  
33614 45 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
5
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   60	
  
Exemplo	
  Animado	
  
33614 45 67 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
5
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   61	
  
Exemplo	
  Animado	
  
67614 45 33 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
5
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   62	
  
Exemplo	
  Animado	
  
67614 45 33 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
6
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   63	
  
Exemplo	
  Animado	
  
67614 45 33 4223 98
1 2 3 4 5 6 7 8
to_do
index
6
6
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   64	
  
Exemplo	
  Animado	
  
42614 45 33 6723 98
1 2 3 4 5 6 7 8
to_do
index
6
6
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   65	
  
Exemplo	
  Animado	
  
42614 45 33 6723 98
1 2 3 4 5 6 7 8
to_do
index
6
7
N 8 fez_swap true
Fim da Segunda Iteração
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   66	
  
Exemplo	
  Animado	
  
42614 45 33 6723 98
1 2 3 4 5 6 7 8
to_do
index
5
1
N 8 fez_swap false
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   67	
  
Exemplo	
  Animado	
  
42614 45 33 6723 98
1 2 3 4 5 6 7 8
to_do
index
5
1
N 8 fez_swap false
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   68	
  
Exemplo	
  Animado	
  
42623 45 33 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
1
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   69	
  
Exemplo	
  Animado	
  
42623 45 33 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
2
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   70	
  
Exemplo	
  Animado	
  
42623 45 33 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
2
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   71	
  
Exemplo	
  Animado	
  
42236 45 33 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
2
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   72	
  
Exemplo	
  Animado	
  
42236 45 33 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
3
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   73	
  
Exemplo	
  Animado	
  
42236 45 33 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
3
N 8 fez_swap true
No Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   74	
  
Exemplo	
  Animado	
  
42236 45 33 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
4
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   75	
  
Exemplo	
  Animado	
  
42236 45 33 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
4
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   76	
  
Exemplo	
  Animado	
  
42236 33 45 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
4
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   77	
  
Exemplo	
  Animado	
  
42236 33 45 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
5
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   78	
  
Exemplo	
  Animado	
  
42236 33 45 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
5
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   79	
  
Exemplo	
  Animado	
  
45236 33 42 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
5
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   80	
  
Exemplo	
  Animado	
  
45236 33 42 6714 98
1 2 3 4 5 6 7 8
to_do
index
5
6
N 8 fez_swap true
Fim da Terceira Iteração
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   81	
  
Exemplo	
  Animado	
  
45236 33 42 6714 98
1 2 3 4 5 6 7 8
to_do
index
4
1
N 8 fez_swap false
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   82	
  
Exemplo	
  Animado	
  
45236 33 42 6714 98
1 2 3 4 5 6 7 8
to_do
index
4
1
N 8 fez_swap false
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   83	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
4
1
N 8 fez_swap true
Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   84	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
4
2
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   85	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
4
2
N 8 fez_swap true
No Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   86	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
4
3
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   87	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
4
3
N 8 fez_swap true
No Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   88	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
4
4
N 8 fez_swap true
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   89	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
4
4
N 8 fez_swap true
No Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   90	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
4
5
N 8 fez_swap true
Fim da Quarta Iteração
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   91	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
3
1
N 8 fez_swap false
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   92	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
3
1
N 8 fez_swap false
No Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   93	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
3
2
N 8 fez_swap false
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   94	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
3
2
N 8 fez_swap false
No Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   95	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
3
3
N 8 fez_swap false
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   96	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
3
3
N 8 fez_swap false
No Swap
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   97	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
3
4
N 8 fez_swap false
Fim da Quinta Iteração
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   98	
  
Exemplo	
  Animado	
  
452314 33 42 676 98
1 2 3 4 5 6 7 8
to_do
index
3
4
N 8 fez_swap false
Não foi realizado nenhum swap
então, todos os elementos já
encontram-se nas posições
corretas.
Nós podemos “pular” os dois
últimos passos do loop externo.
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   99	
  
Observações	
  
•  O	
  algoritmo	
  é	
  estável,	
  isto	
  é,	
  os	
  registros	
  com	
  
chaves	
  iguais	
  nem	
  sempre	
  irão	
  manter	
  a	
  
mesma	
  posição	
  relaYva	
  de	
  antes	
  do	
  início	
  da	
  
ordenação	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   100	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   101	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   102	
  
Imagens	
  
•  hkp://www.caelum.com.br/imagens/curso/cs14-­‐imagem.jpg	
  	
  
•  hkp://www.showmesavings.com/images/target.gif	
  	
  
•  hkp://sandersconsulYng.com/Portals/58319/images/checklist.jpg	
  	
  
•  hkp://www.classichitspaulista.com.br/wp-­‐content/uploads/2010/12/correios-­‐triagem.jpg	
  	
  
•  hkp://www.blackboard.com/resources/connecYons/SEARCH-­‐1.jpg	
  	
  
•  hkp://staYc.howstuffworks.com/gif/how-­‐to-­‐plant-­‐trees-­‐shrubs-­‐and-­‐vines-­‐47.jpg	
  	
  
•  hkp://ffodissahnerak.files.wordpress.com/2007/11/grafo.gif	
  	
  
•  hkp://xpress.superpedido.com.br/Imagens/Capas200502/8536301236.jpg	
  	
  
•  hkp://imagem.buscape.com.br/capas/livros/205/031/190x190_8560031502.jpg	
  	
  
•  hkp://d.yimg.com/gg/u/7a62d58d03887ad0ea7e52fa078e0c0de7b19db6.jpeg	
  	
  
•  hkp://www.computertrainingpakaya.com/images/big-­‐Yck.jpg	
  	
  
•  hkp://dbestwebdeveloper.com/pinoy-­‐website-­‐developer/wp-­‐content/uploads/
2010/07/12282598707YbD6m.jpg	
  	
  
•  hkp://lake.k12.fl.us/moe/lib/moe/test.jpg	
  	
  
•  hkp://acccbuzz.files.wordpress.com/2010/12/grade.jpg	
  	
  
•  hkp://www.vshandw.com/images/icon.informaYon.gif	
  	
  
•  hkp://cs.bloomington.k12.mn.us/modules/groups/homepagefiles/cms/1597624/Image/Icons/
calendar+icon3.png	
  	
  
•  hkp://www.goldb.org/goldblog/cmg_images/real_programmers_binary.jpg	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   103	
  
Obrigado	
  
	
  
Daniel	
  Arndt	
  Alves	
  
daniel.alves@mackenzie.br	
  
Daniel	
  Arndt	
  Alves	
   Bubble	
  Sort	
   104	
  

More Related Content

What's hot

Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmosSandro Arpi
 
ShellSort - Ordenação
ShellSort - OrdenaçãoShellSort - Ordenação
ShellSort - OrdenaçãoAnderson Zardo
 
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
 
Operações em Árvores Binárias
Operações em Árvores BináriasOperações em Árvores Binárias
Operações em Árvores Bináriaselliando dias
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetoresalfredtaddeus
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Shell sort in Data Structure Using C
Shell sort in Data Structure Using CShell sort in Data Structure Using C
Shell sort in Data Structure Using CAshish Gaurkhede
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
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
 
3.2 insertion sort
3.2 insertion sort3.2 insertion sort
3.2 insertion sortKrish_ver2
 
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
 
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 - 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
 

What's hot (20)

Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 
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
 
ShellSort - Ordenação
ShellSort - OrdenaçãoShellSort - Ordenação
ShellSort - Ordenação
 
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
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
 
Operações em Árvores Binárias
Operações em Árvores BináriasOperações em Árvores Binárias
Operações em Árvores Binárias
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Shell sort in Data Structure Using C
Shell sort in Data Structure Using CShell sort in Data Structure Using C
Shell sort in Data Structure Using C
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
 
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 - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Pilhas e Filas
Pilhas e FilasPilhas e Filas
Pilhas e Filas
 
3.2 insertion sort
3.2 insertion sort3.2 insertion sort
3.2 insertion sort
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
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
 
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
 
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
 

Viewers also liked (20)

Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.
 
métodos ordenação C, bolha, selection sort e insertion sort
métodos ordenação C, bolha, selection sort e insertion sortmétodos ordenação C, bolha, selection sort e insertion sort
métodos ordenação C, bolha, selection sort e insertion sort
 
Bubble Sort Classe Java
Bubble Sort Classe JavaBubble Sort Classe Java
Bubble Sort Classe Java
 
Bubble sort
Bubble sortBubble sort
Bubble sort
 
ordenacao shellsort quicksort em C
ordenacao shellsort quicksort em Cordenacao shellsort quicksort em C
ordenacao shellsort quicksort em C
 
Shell sort
Shell sortShell sort
Shell sort
 
Método de ordenamiento quicksort
Método de ordenamiento quicksortMétodo de ordenamiento quicksort
Método de ordenamiento quicksort
 
Shell sort
Shell sortShell sort
Shell sort
 
Java RMI
Java RMIJava RMI
Java RMI
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
Java AWT
Java AWTJava AWT
Java AWT
 
Hiearquia Window
Hiearquia WindowHiearquia Window
Hiearquia Window
 
Sessao
SessaoSessao
Sessao
 
Histórico de Participação do Mackenzie na Maratona de Programação
Histórico de Participação do Mackenzie na Maratona de ProgramaçãoHistórico de Participação do Mackenzie na Maratona de Programação
Histórico de Participação do Mackenzie na Maratona de Programação
 
Shell sort[1]
Shell sort[1]Shell sort[1]
Shell sort[1]
 
Java Swing
Java SwingJava Swing
Java Swing
 
Gerenciadores de Layout
Gerenciadores de LayoutGerenciadores de Layout
Gerenciadores de Layout
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Bubble Sort
Bubble SortBubble Sort
Bubble Sort
 

More from Daniel Arndt Alves

Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPDaniel Arndt Alves
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosDaniel Arndt Alves
 
Exercicios - Java Swing Listeners
Exercicios - Java Swing ListenersExercicios - Java Swing Listeners
Exercicios - Java Swing ListenersDaniel Arndt Alves
 
Estrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de EnsinoEstrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de EnsinoDaniel Arndt Alves
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaDaniel Arndt Alves
 
Técnicas de Programação Aplicada III - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Apresentação da DisciplinaTécnicas de Programação Aplicada III - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Apresentação da DisciplinaDaniel Arndt Alves
 
Técnicas de Programação Aplicada III - Plano de Ensino
Técnicas de Programação Aplicada III - Plano de EnsinoTécnicas de Programação Aplicada III - Plano de Ensino
Técnicas de Programação Aplicada III - Plano de EnsinoDaniel Arndt Alves
 
Linguagem de Programação II - Plano de Ensino
Linguagem de Programação II - Plano de EnsinoLinguagem de Programação II - Plano de Ensino
Linguagem de Programação II - Plano de EnsinoDaniel Arndt Alves
 
Linguagem de Programação II - Apresentação da Disciplina
Linguagem de Programação II - Apresentação da DisciplinaLinguagem de Programação II - Apresentação da Disciplina
Linguagem de Programação II - Apresentação da DisciplinaDaniel Arndt Alves
 
Novos Recursos do Moodle 2.0 (Paper)
Novos Recursos do Moodle 2.0 (Paper)Novos Recursos do Moodle 2.0 (Paper)
Novos Recursos do Moodle 2.0 (Paper)Daniel Arndt Alves
 
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e AdministrativosModelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e AdministrativosDaniel Arndt Alves
 

More from Daniel Arndt Alves (18)

Variaveis Superglobais
Variaveis SuperglobaisVariaveis Superglobais
Variaveis Superglobais
 
Programacao Modular
Programacao ModularProgramacao Modular
Programacao Modular
 
Strings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHPStrings, Arrays e Manipulação Datas em PHP
Strings, Arrays e Manipulação Datas em PHP
 
Introducao ao PHP
Introducao ao PHPIntroducao ao PHP
Introducao ao PHP
 
Arquitetura web
Arquitetura webArquitetura web
Arquitetura web
 
HTML Básico
HTML BásicoHTML Básico
HTML Básico
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos Distribuidos
 
Exercicios - Java Swing Listeners
Exercicios - Java Swing ListenersExercicios - Java Swing Listeners
Exercicios - Java Swing Listeners
 
Exercicios - Java Swing
Exercicios - Java SwingExercicios - Java Swing
Exercicios - Java Swing
 
Estrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de EnsinoEstrutura de Dados II - Plano de Ensino
Estrutura de Dados II - Plano de Ensino
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da Disciplina
 
Técnicas de Programação Aplicada III - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Apresentação da DisciplinaTécnicas de Programação Aplicada III - Apresentação da Disciplina
Técnicas de Programação Aplicada III - Apresentação da Disciplina
 
Técnicas de Programação Aplicada III - Plano de Ensino
Técnicas de Programação Aplicada III - Plano de EnsinoTécnicas de Programação Aplicada III - Plano de Ensino
Técnicas de Programação Aplicada III - Plano de Ensino
 
Linguagem de Programação II - Plano de Ensino
Linguagem de Programação II - Plano de EnsinoLinguagem de Programação II - Plano de Ensino
Linguagem de Programação II - Plano de Ensino
 
Linguagem de Programação II - Apresentação da Disciplina
Linguagem de Programação II - Apresentação da DisciplinaLinguagem de Programação II - Apresentação da Disciplina
Linguagem de Programação II - Apresentação da Disciplina
 
Novos Recursos do Moodle 2
Novos Recursos do Moodle 2Novos Recursos do Moodle 2
Novos Recursos do Moodle 2
 
Novos Recursos do Moodle 2.0 (Paper)
Novos Recursos do Moodle 2.0 (Paper)Novos Recursos do Moodle 2.0 (Paper)
Novos Recursos do Moodle 2.0 (Paper)
 
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e AdministrativosModelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
 

Recently uploaded

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfLuizaAbaAba
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxedelon1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 

Recently uploaded (20)

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 

Bubble Sort

  • 1. Universidade Presbiteriana Mackenzie   Aula  3:  Bubble  Sort   Prof. Ms. Daniel Arndt Alves Faculdade  de  Computação  e  Informá;ca   Computação e Informática Faculdade de Estrutura  de   Dados  II   Daniel  Arndt  Alves   Bubble  Sort   1  
  • 2. Tópicos  da  Aula   •  Ordenação  de  Vetores   •  Algoritmos  de  Ordenação   •  Bubble  Sort   •  Complexidade  Computacional   •  Exemplo  Animado   •  Observações   Daniel  Arndt  Alves   Bubble  Sort   2  
  • 3. Ordenação de Vetores •  Por vezes é necessário ordenar um vetor de forma crescente ou decrescente. •  Por vezes é necessário que as strings contidas num vetor estejam ordenadas alfabeticamente. •  Algoritmos de ordenação são fáceis de adaptar de forma a ordenar qualquer que seja a ordem que se pretende. Daniel  Arndt  Alves   Bubble  Sort   3  
  • 4. Algoritmos  de  Ordenação   •  Ordenação  =  Sort   •  Rearranjar  os  elementos  de   um  array  (banco  de  dados)  de  modo  a  que   obedeçam  a  um  certo  critério  de  ordem.   – Ordem  numérica   – Ordem  lexicográfica   Daniel  Arndt  Alves   Bubble  Sort   4  
  • 5. Algoritmos  de  Ordenação   Daniel  Arndt  Alves   Bubble  Sort   5   512354277 101 1 2 3 4 5 6 5 12 35 42 77 101 1 2 3 4 5 6
  • 6. Algoritmos  de  Ordenação   •  Metodologias:  troca,  inserção,   seleção,  intercalação,   distribuição  de  chaves   – Chave:  componente  de  uma   estrutura,  ou  de  um  registro  de  banco  de  dados,   segundo  o  qual  se  realiza  a  ordenação.   Daniel  Arndt  Alves   Bubble  Sort   6  
  • 7. Bubble  Sort   •  Percorrer  a  coleção  e  elementos   – Movimentação  do  início  ao  fim  do  vetor   – “Bubble” o  maior  valor  ao  final  do  vetor   uYlizando  pares  de  comparações  e  trocas   Daniel  Arndt  Alves   Bubble  Sort   7   512354277 101 1 2 3 4 5 6
  • 8. Bubble  Sort   •  Percorrer  a  coleção  e  elementos   – Movimentação  do  início  ao  fim  do  vetor   – “Bubble” o  maior  valor  ao  final  do  vetor   uYlizando  pares  de  comparações  e  trocas   Daniel  Arndt  Alves   Bubble  Sort   8   512354277 101 1 2 3 4 5 6 Swap42 77
  • 9. Bubble  Sort   •  Percorrer  a  coleção  e  elementos   – Movimentação  do  início  ao  fim  do  vetor   – “Bubble” o  maior  valor  ao  final  do  vetor   uYlizando  pares  de  comparações  e  trocas   Daniel  Arndt  Alves   Bubble  Sort   9   512357742 101 1 2 3 4 5 6 Swap35 77
  • 10. Bubble  Sort   •  Percorrer  a  coleção  e  elementos   – Movimentação  do  início  ao  fim  do  vetor   – “Bubble” o  maior  valor  ao  final  do  vetor   uYlizando  pares  de  comparações  e  trocas   Daniel  Arndt  Alves   Bubble  Sort   10   512773542 101 1 2 3 4 5 6 Swap12 77
  • 11. Bubble  Sort   •  Percorrer  a  coleção  e  elementos   – Movimentação  do  início  ao  fim  do  vetor   – “Bubble” o  maior  valor  ao  final  do  vetor   uYlizando  pares  de  comparações  e  trocas   Daniel  Arndt  Alves   Bubble  Sort   11   577123542 101 1 2 3 4 5 6 Não há necessidade de swap
  • 12. Bubble  Sort   •  Percorrer  a  coleção  e  elementos   – Movimentação  do  início  ao  fim  do  vetor   – “Bubble” o  maior  valor  ao  final  do  vetor   uYlizando  pares  de  comparações  e  trocas   Daniel  Arndt  Alves   Bubble  Sort   12   577123542 101 1 2 3 4 5 6 Swap5 101
  • 13. Bubble  Sort   •  Percorrer  a  coleção  e  elementos   – Movimentação  do  início  ao  fim  do  vetor   – “Bubble” o  maior  valor  ao  final  do  vetor   uYlizando  pares  de  comparações  e  trocas   Daniel  Arndt  Alves   Bubble  Sort   13   77123542 5 1 2 3 4 5 6 101 Maior valor posicionado corretamente
  • 14. Bubble  Sort   •  Note  que  somente  o  elemento  de  maior  valor   está  posicionado  corretamente   •  Todos  os  demais  valores  conYnuam  fora  de   ordem   •  Então,  precisamos  repeYr  este  processo   Daniel  Arndt  Alves   Bubble  Sort   14   77123542 5 1 2 3 4 5 6 101 Maior valor posicionado corretamente
  • 15. Bubble  Sort   •  RepeYr  quantas  vezes?   – Se  temos  N  elementos…   – Se,  a  cada  iteração,  nós  posicionamos  um   elemento  corretamente…   – Então  nós  repeYmos  o  processo  N  –  1  vezes.   – Desta  forma,  garanYmos  o  correto   posicionamento  dos  N  elementos.   Daniel  Arndt  Alves   Bubble  Sort   15  
  • 16. Bubble  Sort   Daniel  Arndt  Alves   Bubble  Sort   16   77123542 5 1 2 3 4 5 6 101 5421235 77 1 2 3 4 5 6 101 4253512 77 1 2 3 4 5 6 101 4235512 77 1 2 3 4 5 6 101 4235125 77 1 2 3 4 5 6 101 N-1
  • 17. Bubble  Sort   Daniel  Arndt  Alves   Bubble  Sort   17   12354277 101 1 2 3 4 5 6 5 77123542 5 1 2 3 4 5 6 101 5421235 77 1 2 3 4 5 6 101 4253512 77 1 2 3 4 5 6 101 4235512 77 1 2 3 4 5 6 101
  • 18. Bubble  Sort   •  Na  Nésima  iteração, precisamos apenas de   MAX-­‐N  comparações.   •  Por  exemplo:   – Esa  é  a  4a  iteração   – MAX  é  6   – Precisamos  apenas  de  2  comparações   Daniel  Arndt  Alves   Bubble  Sort   18   4253512 77 1 2 3 4 5 6 101
  • 19. Bubble  Sort   public class Sort { public void bubbleSort(int[] v, int n){ int j, k, limit; limit = n-1 while (true){ k = 0; for (j = 0; j <= limit - 1; j++){ if (v[j] > v[j+1]){ swap(v, j, j+1); k = j; } } if (k == 0) break; limit = k; } } } Daniel  Arndt  Alves   Bubble  Sort   19  
  • 20. O  Método  swap   /** * Troca a posição de dois elementos de um array de inteiros * @param v um int array * @param i índice do elemento a ser trocado * @param j índice do elemento a ser trocado */ public void swap(int[] v, int i, int j){ int temp; temp = v[i]; v[i] = v[j]; v[j] = temp; } Daniel  Arndt  Alves   Bubble  Sort   20  
  • 21. Sobrecarga   public void bubbleSort(int[] v){ bubbleSort(v, v.length); } Daniel  Arndt  Alves   Bubble  Sort   21  
  • 22. Invocando  o  método  bubbleSort public static void main(String[] args){ Sort sort = new Sort(); int[] v; v = new int[50]; ... sort.bubbleSort(v); ... int n = umValor; sort.bubbleSort(v, n); }   Daniel  Arndt  Alves   Bubble  Sort   22  
  • 23. Complexidade  Computacional   •  Complexidade  no  tempo:  comportamento  do   algoritmo  no  tempo,  em  função  do  tamanho   da  entrada.   •  Complexidade  no  espaço:  consumo  de   memória  do  algoritmo,  em  função  do   tamanho  da  entrada.   Daniel  Arndt  Alves   Bubble  Sort   23  
  • 24. Complexidade  Computacional   •  Bubble  Sort:  o  tempo  gasto  na  execução  do   algoritmo  varia  em  ordem  quadráYca  em   relação  ao  número  de  elementos  a  serem   ordenados.   – T  =  O(n2)  –  Notação  “Big  O”   – AYvidades  mais  custosas:   •  Comparações   •  Trocas  de  Posição  (swap)   Daniel  Arndt  Alves   Bubble  Sort   24  
  • 25. Complexidade  Computacional   •  Análise  informal  com  base  na  operação  mais   custosa,  que  é  a  comparação   – n  etapas  no  pior  caso   – Na  primeira  etapa,  são  feitas  n-­‐1  comparações  e   trocas,  na  segunda  n-­‐2  e  assim  por  diante.   – Temos  então,  a  soma  dos  termos  de  uma   progressão  aritméYca:   •  (n-­‐1)  +  (n-­‐2)  +  …  +  1   •      Daniel  Arndt  Alves   Bubble  Sort   25   Total = n⋅ n −1( ) 2 ⇒ O n2 ( )
  • 26. Complexidade  Computacional   •  Melhor  caso:  vetor  ordenado   •  Pior  caso:  vetor  inverYdo   Daniel  Arndt  Alves   Bubble  Sort   26  
  • 27. Exemplo  Animado   674523 14 6 3398 42 1 2 3 4 5 6 7 8 to_do index 7 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   27  
  • 28. Exemplo  Animado   674523 14 6 3398 42 1 2 3 4 5 6 7 8 to_do index 7 1 N 8 fez_swap false Daniel  Arndt  Alves   Bubble  Sort   28  
  • 29. Exemplo  Animado   674523 14 6 3398 42 1 2 3 4 5 6 7 8 to_do index 7 1 N 8 Swap fez_swap false Daniel  Arndt  Alves   Bubble  Sort   29  
  • 30. Exemplo  Animado   674598 14 6 3323 42 1 2 3 4 5 6 7 8 to_do index 7 1 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   30  
  • 31. Exemplo  Animado   674598 14 6 3323 42 1 2 3 4 5 6 7 8 to_do index 7 2 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   31  
  • 32. Exemplo  Animado   674598 14 6 3323 42 1 2 3 4 5 6 7 8 to_do index 7 2 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   32  
  • 33. Exemplo  Animado   679845 14 6 3323 42 1 2 3 4 5 6 7 8 to_do index 7 2 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   33  
  • 34. Exemplo  Animado   679845 14 6 3323 42 1 2 3 4 5 6 7 8 to_do index 7 3 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   34  
  • 35. Exemplo  Animado   679845 14 6 3323 42 1 2 3 4 5 6 7 8 to_do index 7 3 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   35  
  • 36. Exemplo  Animado   671445 98 6 3323 42 1 2 3 4 5 6 7 8 to_do index 7 3 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   36  
  • 37. Exemplo  Animado   671445 98 6 3323 42 1 2 3 4 5 6 7 8 to_do index 7 4 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   37  
  • 38. Exemplo  Animado   671445 98 6 3323 42 1 2 3 4 5 6 7 8 to_do index 7 4 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   38  
  • 39. Exemplo  Animado   671445 6 98 3323 42 1 2 3 4 5 6 7 8 to_do index 7 4 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   39  
  • 40. Exemplo  Animado   671445 6 98 3323 42 1 2 3 4 5 6 7 8 to_do index 7 5 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   40  
  • 41. Exemplo  Animado   671445 6 98 3323 42 1 2 3 4 5 6 7 8 to_do index 7 5 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   41  
  • 42. Exemplo  Animado   981445 6 67 3323 42 1 2 3 4 5 6 7 8 to_do index 7 5 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   42  
  • 43. Exemplo  Animado   981445 6 67 3323 42 1 2 3 4 5 6 7 8 to_do index 7 6 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   43  
  • 44. Exemplo  Animado   981445 6 67 3323 42 1 2 3 4 5 6 7 8 to_do index 7 6 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   44  
  • 45. Exemplo  Animado   331445 6 67 9823 42 1 2 3 4 5 6 7 8 to_do index 7 6 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   45  
  • 46. Exemplo  Animado   331445 6 67 9823 42 1 2 3 4 5 6 7 8 to_do index 7 7 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   46  
  • 47. Exemplo  Animado   331445 6 67 9823 42 1 2 3 4 5 6 7 8 to_do index 7 7 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   47  
  • 48. Exemplo  Animado   331445 6 67 4223 98 1 2 3 4 5 6 7 8 to_do index 7 7 N 8 Swap fez_swap true Daniel  Arndt  Alves   Bubble  Sort   48  
  • 49. Exemplo  Animado   331445 6 67 4223 98 1 2 3 4 5 6 7 8 to_do index 7 8 N 8 Fim da Primeira Iteração did_swap true Daniel  Arndt  Alves   Bubble  Sort   49  
  • 50. Exemplo  Animado   331445 6 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 1 N 8 fez_swap false Daniel  Arndt  Alves   Bubble  Sort   50  
  • 51. Exemplo  Animado   331445 6 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 1 N 8 fez_swap false No Swap Daniel  Arndt  Alves   Bubble  Sort   51  
  • 52. Exemplo  Animado   331445 6 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 2 N 8 fez_swap false Daniel  Arndt  Alves   Bubble  Sort   52  
  • 53. Exemplo  Animado   331445 6 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 2 N 8 fez_swap false Swap Daniel  Arndt  Alves   Bubble  Sort   53  
  • 54. Exemplo  Animado   334514 6 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 2 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   54  
  • 55. Exemplo  Animado   334514 6 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 3 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   55  
  • 56. Exemplo  Animado   334514 6 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 3 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   56  
  • 57. Exemplo  Animado   33614 45 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 3 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   57  
  • 58. Exemplo  Animado   33614 45 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 4 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   58  
  • 59. Exemplo  Animado   33614 45 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 4 N 8 fez_swap true No Swap Daniel  Arndt  Alves   Bubble  Sort   59  
  • 60. Exemplo  Animado   33614 45 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 5 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   60  
  • 61. Exemplo  Animado   33614 45 67 4223 98 1 2 3 4 5 6 7 8 to_do index 6 5 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   61  
  • 62. Exemplo  Animado   67614 45 33 4223 98 1 2 3 4 5 6 7 8 to_do index 6 5 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   62  
  • 63. Exemplo  Animado   67614 45 33 4223 98 1 2 3 4 5 6 7 8 to_do index 6 6 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   63  
  • 64. Exemplo  Animado   67614 45 33 4223 98 1 2 3 4 5 6 7 8 to_do index 6 6 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   64  
  • 65. Exemplo  Animado   42614 45 33 6723 98 1 2 3 4 5 6 7 8 to_do index 6 6 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   65  
  • 66. Exemplo  Animado   42614 45 33 6723 98 1 2 3 4 5 6 7 8 to_do index 6 7 N 8 fez_swap true Fim da Segunda Iteração Daniel  Arndt  Alves   Bubble  Sort   66  
  • 67. Exemplo  Animado   42614 45 33 6723 98 1 2 3 4 5 6 7 8 to_do index 5 1 N 8 fez_swap false Daniel  Arndt  Alves   Bubble  Sort   67  
  • 68. Exemplo  Animado   42614 45 33 6723 98 1 2 3 4 5 6 7 8 to_do index 5 1 N 8 fez_swap false Swap Daniel  Arndt  Alves   Bubble  Sort   68  
  • 69. Exemplo  Animado   42623 45 33 6714 98 1 2 3 4 5 6 7 8 to_do index 5 1 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   69  
  • 70. Exemplo  Animado   42623 45 33 6714 98 1 2 3 4 5 6 7 8 to_do index 5 2 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   70  
  • 71. Exemplo  Animado   42623 45 33 6714 98 1 2 3 4 5 6 7 8 to_do index 5 2 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   71  
  • 72. Exemplo  Animado   42236 45 33 6714 98 1 2 3 4 5 6 7 8 to_do index 5 2 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   72  
  • 73. Exemplo  Animado   42236 45 33 6714 98 1 2 3 4 5 6 7 8 to_do index 5 3 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   73  
  • 74. Exemplo  Animado   42236 45 33 6714 98 1 2 3 4 5 6 7 8 to_do index 5 3 N 8 fez_swap true No Swap Daniel  Arndt  Alves   Bubble  Sort   74  
  • 75. Exemplo  Animado   42236 45 33 6714 98 1 2 3 4 5 6 7 8 to_do index 5 4 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   75  
  • 76. Exemplo  Animado   42236 45 33 6714 98 1 2 3 4 5 6 7 8 to_do index 5 4 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   76  
  • 77. Exemplo  Animado   42236 33 45 6714 98 1 2 3 4 5 6 7 8 to_do index 5 4 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   77  
  • 78. Exemplo  Animado   42236 33 45 6714 98 1 2 3 4 5 6 7 8 to_do index 5 5 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   78  
  • 79. Exemplo  Animado   42236 33 45 6714 98 1 2 3 4 5 6 7 8 to_do index 5 5 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   79  
  • 80. Exemplo  Animado   45236 33 42 6714 98 1 2 3 4 5 6 7 8 to_do index 5 5 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   80  
  • 81. Exemplo  Animado   45236 33 42 6714 98 1 2 3 4 5 6 7 8 to_do index 5 6 N 8 fez_swap true Fim da Terceira Iteração Daniel  Arndt  Alves   Bubble  Sort   81  
  • 82. Exemplo  Animado   45236 33 42 6714 98 1 2 3 4 5 6 7 8 to_do index 4 1 N 8 fez_swap false Daniel  Arndt  Alves   Bubble  Sort   82  
  • 83. Exemplo  Animado   45236 33 42 6714 98 1 2 3 4 5 6 7 8 to_do index 4 1 N 8 fez_swap false Swap Daniel  Arndt  Alves   Bubble  Sort   83  
  • 84. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 4 1 N 8 fez_swap true Swap Daniel  Arndt  Alves   Bubble  Sort   84  
  • 85. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 4 2 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   85  
  • 86. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 4 2 N 8 fez_swap true No Swap Daniel  Arndt  Alves   Bubble  Sort   86  
  • 87. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 4 3 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   87  
  • 88. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 4 3 N 8 fez_swap true No Swap Daniel  Arndt  Alves   Bubble  Sort   88  
  • 89. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 4 4 N 8 fez_swap true Daniel  Arndt  Alves   Bubble  Sort   89  
  • 90. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 4 4 N 8 fez_swap true No Swap Daniel  Arndt  Alves   Bubble  Sort   90  
  • 91. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 4 5 N 8 fez_swap true Fim da Quarta Iteração Daniel  Arndt  Alves   Bubble  Sort   91  
  • 92. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 3 1 N 8 fez_swap false Daniel  Arndt  Alves   Bubble  Sort   92  
  • 93. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 3 1 N 8 fez_swap false No Swap Daniel  Arndt  Alves   Bubble  Sort   93  
  • 94. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 3 2 N 8 fez_swap false Daniel  Arndt  Alves   Bubble  Sort   94  
  • 95. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 3 2 N 8 fez_swap false No Swap Daniel  Arndt  Alves   Bubble  Sort   95  
  • 96. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 3 3 N 8 fez_swap false Daniel  Arndt  Alves   Bubble  Sort   96  
  • 97. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 3 3 N 8 fez_swap false No Swap Daniel  Arndt  Alves   Bubble  Sort   97  
  • 98. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 3 4 N 8 fez_swap false Fim da Quinta Iteração Daniel  Arndt  Alves   Bubble  Sort   98  
  • 99. Exemplo  Animado   452314 33 42 676 98 1 2 3 4 5 6 7 8 to_do index 3 4 N 8 fez_swap false Não foi realizado nenhum swap então, todos os elementos já encontram-se nas posições corretas. Nós podemos “pular” os dois últimos passos do loop externo. Daniel  Arndt  Alves   Bubble  Sort   99  
  • 100. Observações   •  O  algoritmo  é  estável,  isto  é,  os  registros  com   chaves  iguais  nem  sempre  irão  manter  a   mesma  posição  relaYva  de  antes  do  início  da   ordenação   Daniel  Arndt  Alves   Bubble  Sort   100  
  • 101. Daniel  Arndt  Alves   Bubble  Sort   101  
  • 102. Daniel  Arndt  Alves   Bubble  Sort   102  
  • 103. Imagens   •  hkp://www.caelum.com.br/imagens/curso/cs14-­‐imagem.jpg     •  hkp://www.showmesavings.com/images/target.gif     •  hkp://sandersconsulYng.com/Portals/58319/images/checklist.jpg     •  hkp://www.classichitspaulista.com.br/wp-­‐content/uploads/2010/12/correios-­‐triagem.jpg     •  hkp://www.blackboard.com/resources/connecYons/SEARCH-­‐1.jpg     •  hkp://staYc.howstuffworks.com/gif/how-­‐to-­‐plant-­‐trees-­‐shrubs-­‐and-­‐vines-­‐47.jpg     •  hkp://ffodissahnerak.files.wordpress.com/2007/11/grafo.gif     •  hkp://xpress.superpedido.com.br/Imagens/Capas200502/8536301236.jpg     •  hkp://imagem.buscape.com.br/capas/livros/205/031/190x190_8560031502.jpg     •  hkp://d.yimg.com/gg/u/7a62d58d03887ad0ea7e52fa078e0c0de7b19db6.jpeg     •  hkp://www.computertrainingpakaya.com/images/big-­‐Yck.jpg     •  hkp://dbestwebdeveloper.com/pinoy-­‐website-­‐developer/wp-­‐content/uploads/ 2010/07/12282598707YbD6m.jpg     •  hkp://lake.k12.fl.us/moe/lib/moe/test.jpg     •  hkp://acccbuzz.files.wordpress.com/2010/12/grade.jpg     •  hkp://www.vshandw.com/images/icon.informaYon.gif     •  hkp://cs.bloomington.k12.mn.us/modules/groups/homepagefiles/cms/1597624/Image/Icons/ calendar+icon3.png     •  hkp://www.goldb.org/goldblog/cmg_images/real_programmers_binary.jpg   Daniel  Arndt  Alves   Bubble  Sort   103  
  • 104. Obrigado     Daniel  Arndt  Alves   daniel.alves@mackenzie.br   Daniel  Arndt  Alves   Bubble  Sort   104