SlideShare une entreprise Scribd logo
1  sur  21
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	
  
Tópicos	
  da	
  Aula	
  
•  Inser&on	
  Sort	
  
•  Complexidade	
  Computacional	
  
•  Observações	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   2	
  
•  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	
  
•  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	
  
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
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 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	
  
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	
  
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	
  
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
Complexidade	
  Computacional	
  
•  Portanto,	
  a	
  complexidade	
  deste	
  algoritmo	
  é	
  
quadrá/ca	
  
•  Straight	
  Inser&on	
  Sort	
  
– T	
  =	
  O(n2)	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   14	
  
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	
  
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	
  
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	
  
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/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	
  
Obrigado	
  
	
  
Daniel	
  Arndt	
  Alves	
  
daniel.alves@mackenzie.br	
  
Daniel	
  Arndt	
  Alves	
   Inser/on	
  Sort	
   21	
  

Contenu connexe

Tendances

Tendances (20)

Link_List.pptx
Link_List.pptxLink_List.pptx
Link_List.pptx
 
Aula sobre Tabela Hash
Aula sobre Tabela HashAula sobre Tabela Hash
Aula sobre Tabela Hash
 
Testando API Rest com Insomnia Core
Testando API Rest com Insomnia CoreTestando API Rest com Insomnia Core
Testando API Rest com Insomnia Core
 
Stack and queue
Stack and queueStack and queue
Stack and queue
 
Quick_sort1.pptx
Quick_sort1.pptxQuick_sort1.pptx
Quick_sort1.pptx
 
Tree
TreeTree
Tree
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
 
3 searching algorithms in Java
3 searching algorithms in Java3 searching algorithms in Java
3 searching algorithms in Java
 
Data structure stack&queue basics
Data structure stack&queue   basicsData structure stack&queue   basics
Data structure stack&queue basics
 
How bubble sort works
How bubble sort worksHow bubble sort works
How bubble sort works
 
Metodos de ordenação estrutura de dados
Metodos de ordenação   estrutura de dadosMetodos de ordenação   estrutura de dados
Metodos de ordenação estrutura de dados
 
Método de ordenamiento quicksort
Método de ordenamiento quicksortMétodo de ordenamiento quicksort
Método de ordenamiento quicksort
 
Técnica de busca - Bubble Sort
Técnica de busca - Bubble SortTécnica de busca - Bubble Sort
Técnica de busca - Bubble Sort
 
Lista Duplamente Encadeada
Lista Duplamente EncadeadaLista Duplamente Encadeada
Lista Duplamente Encadeada
 
Insertion and merge sort
Insertion and merge sortInsertion and merge sort
Insertion and merge sort
 
Binary tree traversal ppt - 02.03.2020
Binary tree traversal   ppt - 02.03.2020Binary tree traversal   ppt - 02.03.2020
Binary tree traversal ppt - 02.03.2020
 
B+ tree intro,uses,insertion and deletion
B+ tree intro,uses,insertion and deletionB+ tree intro,uses,insertion and deletion
B+ tree intro,uses,insertion and deletion
 
Data Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search TreeData Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search Tree
 
Binary search trees
Binary search treesBinary search trees
Binary search trees
 
Doubly Linked List
Doubly Linked ListDoubly Linked List
Doubly Linked List
 

Plus de Daniel Arndt Alves

Plus de Daniel Arndt Alves (20)

Sessao
SessaoSessao
Sessao
 
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
 
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
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Java RMI
Java RMIJava RMI
Java RMI
 
Java Platform, Enterprise Edition
Java Platform, Enterprise EditionJava Platform, Enterprise Edition
Java Platform, Enterprise Edition
 
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
 
Gerenciadores de Layout
Gerenciadores de LayoutGerenciadores de Layout
Gerenciadores de Layout
 
Hiearquia Window
Hiearquia WindowHiearquia Window
Hiearquia Window
 
Exercicios - Java Swing
Exercicios - Java SwingExercicios - Java Swing
Exercicios - Java Swing
 
Java AWT
Java AWTJava AWT
Java AWT
 
Java Swing
Java SwingJava Swing
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
 

Dernier

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 

Dernier (20)

Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 

Insertion Sort

  • 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. Tópicos  da  Aula   •  Inser&on  Sort   •  Complexidade  Computacional   •  Observações   Daniel  Arndt  Alves   Inser/on  Sort   2  
  • 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. •  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. 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. Inser&on  Sort   Daniel  Arndt  Alves   Inser/on  Sort   6  
  • 7. Inser&on  Sort   Daniel  Arndt  Alves   Inser/on  Sort   7  
  • 8. Inser&on  Sort   Daniel  Arndt  Alves   Inser/on  Sort   8  
  • 9. Inser&on  Sort   Daniel  Arndt  Alves   Inser/on  Sort   9  
  • 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. 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. 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. 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. Complexidade  Computacional   •  Portanto,  a  complexidade  deste  algoritmo  é   quadrá/ca   •  Straight  Inser&on  Sort   – T  =  O(n2)   Daniel  Arndt  Alves   Inser/on  Sort   14  
  • 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. 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. 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. Daniel  Arndt  Alves   Inser/on  Sort   18  
  • 19. Daniel  Arndt  Alves   Inser/on  Sort   19  
  • 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. Obrigado     Daniel  Arndt  Alves   daniel.alves@mackenzie.br   Daniel  Arndt  Alves   Inser/on  Sort   21