Universidade Presbiteriana Mackenzie	
  
Aula	
  4:	
  Inser-on	
  Sort	
  
Prof. Ms. Daniel Arndt Alves
Faculdade	
  de	
...
Tópicos	
  da	
  Aula	
  
•  Inser&on	
  Sort	
  
•  Complexidade	
  Computacional	
  
•  Observações	
  
Daniel	
  Arndt	...
•  Em	
  cada	
  etapa,	
  assume-­‐se	
  que	
  o	
  vetor	
  está	
  
dividido	
  em	
  duas	
  regiões:	
  
– A	
  prim...
•  Na	
  próxima	
  etapa	
  a	
  região	
  1,	
  ordenada,	
  terá	
  
crescido	
  de	
  um	
  elemento	
  e	
  a	
  regi...
Inser&on	
  Sort	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   5	
  
AO O R E N AD O R E Ni = 4
AO R D E N
62 3 4 ...
Inser&on	
  Sort	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   6	
  
Inser&on	
  Sort	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   7	
  
Inser&on	
  Sort	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   8	
  
Inser&on	
  Sort	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   9	
  
Inser&on	
  Sort	
  
/**
* Ordenar da posição início até à posição fim
*/
public void straightInsertionSort(int[] v, int i...
Inser&on	
  Sort	
  (Sobrecarga)	
  
/**
* Ordenar as primeiras n posições
*/
public void straightInsertionSort(int[] v, i...
Complexidade	
  Computacional	
  
•  Se	
  o	
  vetor	
  a	
  ordenar	
  possui	
  n	
  elementos,	
  
então	
  o	
  algor...
Complexidade	
  Computacional	
  
•  Quantas	
  comparações	
  e	
  trocas	
  serão	
  
realizadas?	
  
– No	
  pior	
  ca...
Complexidade	
  Computacional	
  
•  Portanto,	
  a	
  complexidade	
  deste	
  algoritmo	
  é	
  
quadrá/ca	
  
•  Straig...
Observações	
  
•  A	
  inserção	
  do	
  item	
  em	
  uma	
  posição	
  adequada	
  
na	
  sequência	
  de	
  des/no	
  ...
Observações	
  
•  Vantagens:	
  
– O	
  número	
  mínimo	
  de	
  comparações	
  e	
  movimentos	
  
ocorre	
  quando	
  ...
Observações	
  
•  O	
  algoritmo	
  é	
  estável,	
  isto	
  é,	
  os	
  registros	
  com	
  
chaves	
  iguais	
  sempre	...
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   18	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   19	
  
Imagens	
  
•  h`p://www.caelum.com.br/imagens/curso/cs14-­‐imagem.jpg	
  	
  
•  h`p://www.showmesavings.com/images/targe...
Obrigado	
  
	
  
Daniel	
  Arndt	
  Alves	
  
daniel.alves@mackenzie.br	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort...
Upcoming SlideShare
Loading in …5
×

Insertion Sort

5,307 views

Published on

Algoritmo de ordenação - Insertion Sort

Published in: Education
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,307
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Insertion Sort

  1. 1. Universidade Presbiteriana Mackenzie   Aula  4:  Inser-on  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   Inser/on  Sort   1  
  2. 2. Tópicos  da  Aula   •  Inser&on  Sort   •  Complexidade  Computacional   •  Observações   Daniel  Arndt  Alves   Inser/on  Sort   2  
  3. 3. •  Em  cada  etapa,  assume-­‐se  que  o  vetor  está   dividido  em  duas  regiões:   – A  primeira  já  está  ordenada   – A  segunda  ainda  não  está  ordenada   •  Escolhe-­‐se  o  primeiro  elemento  da  região  não   ordenada  e  insere-­‐se  o  mesmo  na  posição   correta  na  região  ordenada.   Insertion Sort Daniel  Arndt  Alves   Inser/on  Sort   3  
  4. 4. •  Na  próxima  etapa  a  região  1,  ordenada,  terá   crescido  de  um  elemento  e  a  região  2,  por   ordenar,  terá  decrescido  de  um  elemento.   Insertion Sort Daniel  Arndt  Alves   Inser/on  Sort   4  
  5. 5. Inser&on  Sort   Daniel  Arndt  Alves   Inser/on  Sort   5   AO O R E N AD O R E Ni = 4 AO R D E N 62 3 4 51 i = 3 AO R D E N AD E O R Ni = 5 AD E N O Ri = 6 RA D E N ORes.: Chaves Iniciais O R AO R D E N i = 2
  6. 6. Inser&on  Sort   Daniel  Arndt  Alves   Inser/on  Sort   6  
  7. 7. Inser&on  Sort   Daniel  Arndt  Alves   Inser/on  Sort   7  
  8. 8. Inser&on  Sort   Daniel  Arndt  Alves   Inser/on  Sort   8  
  9. 9. Inser&on  Sort   Daniel  Arndt  Alves   Inser/on  Sort   9  
  10. 10. Inser&on  Sort   /** * Ordenar da posição início até à posição fim */ public void straightInsertionSort(int[] v, int inicio, int fim){ int j, i, temp; for (j = inicio + 1; j <= fim; j++) { i = j - 1; temp = v[j]; // Mover para baixo enquanto for menor while (temp < v[i]){ v[i+1] = v[i]; i = i - 1; if(i < inicio) break; } v[i+1] = temp; } return; } Daniel  Arndt  Alves   Inser/on  Sort   10  
  11. 11. Inser&on  Sort  (Sobrecarga)   /** * Ordenar as primeiras n posições */ public void straightInsertionSort(int[] v, int n){ straightInsertionSort(v, 0, n-1); } /** * Ordenar o vetor inteiro */ public void straightInsertionSort(int[] v){ straightInsertionSort(v, 0, v.length-1); } Daniel  Arndt  Alves   Inser/on  Sort   11  
  12. 12. Complexidade  Computacional   •  Se  o  vetor  a  ordenar  possui  n  elementos,   então  o  algoritmo  realizará  n-­‐1  etapas.   •  Quantas  comparações  e  trocas  serão   realizadas?   – No  melhor  caso,  vetor  ordenado,  serão  realizadas   1  comparação  e  1  troca  por  etapa,  um  total  de   (n-­‐1)  comparações  e  (n-­‐1)  trocas   Daniel  Arndt  Alves   Inser/on  Sort   12  
  13. 13. Complexidade  Computacional   •  Quantas  comparações  e  trocas  serão   realizadas?   – No  pior  caso,  vetor  em  ordem  inversa,  serão   realizadas  sucessivamente  1,  2,  3,  ...,  n-­‐1   comparações  e  trocas.   •  A  soma  dos  termos  dessa  progressão  aritmé/ca  será     – Pode  ser  demonstrado  que  para  um  vetor   aleatório,  o  número  aproximado  de  comparações   e  trocas  é   Daniel  Arndt  Alves   Inser/on  Sort   13   n2 2 n2 4
  14. 14. Complexidade  Computacional   •  Portanto,  a  complexidade  deste  algoritmo  é   quadrá/ca   •  Straight  Inser&on  Sort   – T  =  O(n2)   Daniel  Arndt  Alves   Inser/on  Sort   14  
  15. 15. Observações   •  A  inserção  do  item  em  uma  posição  adequada   na  sequência  de  des/no  é  realizada  com  a   movimentação  das  chaves  maiores  para  a   direita  e  então  é  feita  a  inserção  do  item  na   posição  vazia   Daniel  Arndt  Alves   Inser/on  Sort   15  
  16. 16. Observações   •  Vantagens:   – O  número  mínimo  de  comparações  e  movimentos   ocorre  quando  os  itens  já  estão  originalmente   ordenados   – O  número  máximo  ocorre  quando  os  itens  estão   originalmente  em  ordem  reversa,  o  que  indica  um   comportamento  natural  para  o  algoritmo   Daniel  Arndt  Alves   Inser/on  Sort   16  
  17. 17. Observações   •  O  algoritmo  é  estável,  isto  é,  os  registros  com   chaves  iguais  sempre  irão  manter  a  mesma   posição  rela/va  de  antes  do  início  da   ordenação   Daniel  Arndt  Alves   Inser/on  Sort   17  
  18. 18. Daniel  Arndt  Alves   Inser/on  Sort   18  
  19. 19. Daniel  Arndt  Alves   Inser/on  Sort   19  
  20. 20. Imagens   •  h`p://www.caelum.com.br/imagens/curso/cs14-­‐imagem.jpg     •  h`p://www.showmesavings.com/images/target.gif     •  h`p://sandersconsul/ng.com/Portals/58319/images/checklist.jpg     •  h`p://www.classichitspaulista.com.br/wp-­‐content/uploads/2010/12/correios-­‐triagem.jpg     •  h`p://www.blackboard.com/resources/connec/ons/SEARCH-­‐1.jpg     •  h`p://sta/c.howstuffworks.com/gif/how-­‐to-­‐plant-­‐trees-­‐shrubs-­‐and-­‐vines-­‐47.jpg     •  h`p://ffodissahnerak.files.wordpress.com/2007/11/grafo.gif     •  h`p://xpress.superpedido.com.br/Imagens/Capas200502/8536301236.jpg     •  h`p://imagem.buscape.com.br/capas/livros/205/031/190x190_8560031502.jpg     •  h`p://d.yimg.com/gg/u/7a62d58d03887ad0ea7e52fa078e0c0de7b19db6.jpeg     •  h`p://www.computertrainingpa`aya.com/images/big-­‐/ck.jpg     •  h`p://dbestwebdeveloper.com/pinoy-­‐website-­‐developer/wp-­‐content/uploads/ 2010/07/12282598707YbD6m.jpg     •  h`p://lake.k12.fl.us/moe/lib/moe/test.jpg     •  h`p://acccbuzz.files.wordpress.com/2010/12/grade.jpg     •  h`p://www.vshandw.com/images/icon.informa/on.gif     •  h`p://cs.bloomington.k12.mn.us/modules/groups/homepagefiles/cms/1597624/Image/Icons/ calendar+icon3.png     •  h`p://www.goldb.org/goldblog/cmg_images/real_programmers_binary.jpg   Daniel  Arndt  Alves   Inser/on  Sort   20  
  21. 21. Obrigado     Daniel  Arndt  Alves   daniel.alves@mackenzie.br   Daniel  Arndt  Alves   Inser/on  Sort   21  

×