algoritmos de ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfrevis˜ao conceitos...
TRANSCRIPT
![Page 1: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/1.jpg)
Algoritmos de Ordenacao
Marcelo K. Albertini
7 de Maio de 2014
![Page 2: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/2.jpg)
Aula de hoje
Nesta aula veremos:
Ordenacao interna
Complexidade
2/1
![Page 3: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/3.jpg)
Revisao
Conceitos
Vetor: int vetor[] = 5, 1, 7, 3, 0;
3/1
![Page 4: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/4.jpg)
Revisao
Conceitos
Vetor: int vetor[] = 5, 1, 7, 3, 0;
Variavel ındice: posicao para acesso de elemento
3/1
![Page 5: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/5.jpg)
Revisao
Conceitos
Vetor: int vetor[] = 5, 1, 7, 3, 0;
Variavel ındice: posicao para acesso de elemento
Variavel auxiliar: armazenamento temporario
3/1
![Page 6: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/6.jpg)
Revisao
Conceitos
Vetor: int vetor[] = 5, 1, 7, 3, 0;
Variavel ındice: posicao para acesso de elemento
Variavel auxiliar: armazenamento temporario
util para troca de posicao de elementos do vetor
3/1
![Page 7: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/7.jpg)
Ordenacao interna
ordenar em memoria
Pre-condicoes: vetor em memoria principal, inicializado comelementos
4/1
![Page 8: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/8.jpg)
Ordenacao interna
ordenar em memoria
Pre-condicoes: vetor em memoria principal, inicializado comelementos
Pos-condicoes: vetor com elementos em ordem crescente (oudecrescente)
4/1
![Page 9: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/9.jpg)
Ordenacao interna
ordenar em memoria
Pre-condicoes: vetor em memoria principal, inicializado comelementos
Pos-condicoes: vetor com elementos em ordem crescente (oudecrescente)
Como fica ordenado?
4/1
![Page 10: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/10.jpg)
Vetores e Ordenacao: exemplos
Exemplos:
Numeros inteiros ou ponto flutuante
5/1
![Page 11: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/11.jpg)
Vetores e Ordenacao: exemplos
Exemplos:
Numeros inteiros ou ponto flutuante
Vetor de strings
5/1
![Page 12: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/12.jpg)
Vetores e Ordenacao: exemplos
Exemplos:
Numeros inteiros ou ponto flutuante
Vetor de stringsTipos compostos: necessario definir funcao para comparar
5/1
![Page 13: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/13.jpg)
Vetores e Ordenacao: exemplos
Exemplos:
Numeros inteiros ou ponto flutuante
Vetor de stringsTipos compostos: necessario definir funcao para comparar
int compare(ITEM item1, ITEM item2);
Exemplo
1 i n t compare ( Aluno a ) 2 i f ( t h i s . media > a . media ) 3 r e t u r n 1 ;4 5 e l s e i f ( t h i s . media == a . media ) 6 r e t u r n (−1) ;7 e l s e 8 r e t u r n (0 ) ;9
10
5/1
![Page 14: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/14.jpg)
Algoritmo de ordenacao
Definicao de ordenacao
Sequencia de comparacoes e trocas de posicao entre elementospara obter vetor ordenado.
6/1
![Page 15: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/15.jpg)
Algoritmo de ordenacao
Definicao de ordenacao
Sequencia de comparacoes e trocas de posicao entre elementospara obter vetor ordenado.
Complexidade
Quantas trocas, comparacoes (complexidade de tempo) e variaveisauxiliares (de espaco) sao necessarias?
6/1
![Page 16: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/16.jpg)
Bubblesort - Ordenacao em“bolhas”
Como programar um algoritmo de ordenacao simples?
Ideia
Comparar pares consecutivos de elementos e troca-los de posicaocaso o primeiro seja maior que o segundo.
1 i f ( v e t o r [ i ] > v e t o r [ i +1]) 2 aux = v e t o r [ i ] ;3 v e t o r [ i ] = v e t o r [ i +1] ;4 v e t o r [ i +1] = aux ;5
7/1
![Page 17: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/17.jpg)
Bubblesort - Ordenacao em“bolhas”
Como programar um algoritmo de ordenacao simples?
Ideia
Comparar pares consecutivos de elementos e troca-los de posicaocaso o primeiro seja maior que o segundo.
1 i f ( v e t o r [ i ] > v e t o r [ i +1]) 2 aux = v e t o r [ i ] ;3 v e t o r [ i ] = v e t o r [ i +1] ;4 v e t o r [ i +1] = aux ;5
Variavel auxiliar aux e essencial.
7/1
![Page 18: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/18.jpg)
Primeira iteracao
8/1
![Page 19: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/19.jpg)
Primeira iteracao
8/1
![Page 20: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/20.jpg)
Primeira iteracao
8/1
![Page 21: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/21.jpg)
Primeira iteracao
8/1
![Page 22: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/22.jpg)
Primeira iteracao
8/1
![Page 23: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/23.jpg)
Primeira iteracao
8/1
![Page 24: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/24.jpg)
Primeira iteracao
Maior elemento sempre esta na sua posicao ordenada na primeiraiteracao.
8/1
![Page 25: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/25.jpg)
Algoritmo Bubblesort: versao simplificada
1 vo i d b u bb l e s o r t ( i n t v e t o r [ ] , i n t nelem )
9/1
![Page 26: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/26.jpg)
Algoritmo Bubblesort: versao simplificada
1 vo i d b u bb l e s o r t ( i n t v e t o r [ ] , i n t nelem ) 2 i n t i , i t e r a c a o , aux ;
9/1
![Page 27: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/27.jpg)
Algoritmo Bubblesort: versao simplificada
1 vo i d b u bb l e s o r t ( i n t v e t o r [ ] , i n t nelem ) 2 i n t i , i t e r a c a o , aux ;34 /∗ c o n t r o l e do numero de i t e r a c o e s ( n − 1) ∗/5 f o r ( i t e r a c a o = 0 ; i t e r a c a o < nelem−1; i t e r a c a o++)
9/1
![Page 28: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/28.jpg)
Algoritmo Bubblesort: versao simplificada
1 vo i d b u bb l e s o r t ( i n t v e t o r [ ] , i n t nelem ) 2 i n t i , i t e r a c a o , aux ;34 /∗ c o n t r o l e do numero de i t e r a c o e s ( n − 1) ∗/5 f o r ( i t e r a c a o = 0 ; i t e r a c a o < nelem−1; i t e r a c a o++)6 /∗ r e p e t i c a o i n t e r n a , p e r c o r r e v e t o r ( n − 1) ∗/7 f o r ( i = 0 ; i < nelem − 1 ; i++)
9/1
![Page 29: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/29.jpg)
Algoritmo Bubblesort: versao simplificada
1 vo i d b u bb l e s o r t ( i n t v e t o r [ ] , i n t nelem ) 2 i n t i , i t e r a c a o , aux ;34 /∗ c o n t r o l e do numero de i t e r a c o e s ( n − 1) ∗/5 f o r ( i t e r a c a o = 0 ; i t e r a c a o < nelem−1; i t e r a c a o++)6 /∗ r e p e t i c a o i n t e r n a , p e r c o r r e v e t o r ( n − 1) ∗/7 f o r ( i = 0 ; i < nelem − 1 ; i++)8 i f ( v e t o r [ i ] > v e t o r [ i +1])
9/1
![Page 30: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/30.jpg)
Algoritmo Bubblesort: versao simplificada
1 vo i d b u bb l e s o r t ( i n t v e t o r [ ] , i n t nelem ) 2 i n t i , i t e r a c a o , aux ;34 /∗ c o n t r o l e do numero de i t e r a c o e s ( n − 1) ∗/5 f o r ( i t e r a c a o = 0 ; i t e r a c a o < nelem−1; i t e r a c a o++)6 /∗ r e p e t i c a o i n t e r n a , p e r c o r r e v e t o r ( n − 1) ∗/7 f o r ( i = 0 ; i < nelem − 1 ; i++)8 i f ( v e t o r [ i ] > v e t o r [ i +1])9 /∗ e n e c e s s a r i a uma t r o c a ∗/
10 aux = v e t o r [ i ] ;11 v e t o r [ i ] = v e t o r [ i +1] ;12 v e t o r [ i +1] = aux ;13 14 15 16
9/1
![Page 31: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/31.jpg)
Outras iteracoes
10/1
![Page 32: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/32.jpg)
Limite assintotico de complexidade
Limite assintotico superior O(g(n))
Objetivo: encontrar funcao limitante superior g(n) para representaro“teto”do custo do algoritmo.
11/1
![Page 33: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/33.jpg)
Limite assintotico de complexidade
Limite assintotico superior O(g(n))
Objetivo: encontrar funcao limitante superior g(n) para representaro“teto”do custo do algoritmo.
Bubblesort simplificado
Para n elementos, faz-se n − 1 iteracoes e n − 1 comparacoes emcada iteracao: g(n) = (n − 1)2. Pior caso de numero de trocas:g(n) = n × (n − 1)/2. Entao a complexidade de tempo e O(n2).
11/1
![Page 34: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/34.jpg)
Bucket sort
Ideia: ordenacao de numeros inteiros
Cada elemento e representado por uma posicao em um vetor (umbalde). Conta-se as repeticoes de cada numero.
12/1
![Page 35: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/35.jpg)
Bucket sort
Ideia: ordenacao de numeros inteiros
Cada elemento e representado por uma posicao em um vetor (umbalde). Conta-se as repeticoes de cada numero.
1 vo i d bucke tSo r t ( i n t [ ] v e to r , i n t max) 23 long [ ] b a l d e s = new long [max+1] ;
12/1
![Page 36: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/36.jpg)
Bucket sort
Ideia: ordenacao de numeros inteiros
Cada elemento e representado por uma posicao em um vetor (umbalde). Conta-se as repeticoes de cada numero.
1 vo i d bucke tSo r t ( i n t [ ] v e to r , i n t max) 23 long [ ] b a l d e s = new long [max+1] ;4 f o r ( i n t i = 0 ; i < v e t o r . l e n g t h ; i++) 5 ba l d e s [ v e t o r [ i ] ]++;6
12/1
![Page 37: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/37.jpg)
Bucket sort
Ideia: ordenacao de numeros inteiros
Cada elemento e representado por uma posicao em um vetor (umbalde). Conta-se as repeticoes de cada numero.
1 vo i d bucke tSo r t ( i n t [ ] v e to r , i n t max) 23 long [ ] b a l d e s = new long [max+1] ;4 f o r ( i n t i = 0 ; i < v e t o r . l e n g t h ; i++) 5 ba l d e s [ v e t o r [ i ] ]++;6 7 // o l h a r cada ba l d e em ordem e t i r a r os numeros8 i n t i = 0 ;9 f o r ( i n t j = 0 ; j < ba l d e s . l e n g t h ; j++)
12/1
![Page 38: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/38.jpg)
Bucket sort
Ideia: ordenacao de numeros inteiros
Cada elemento e representado por uma posicao em um vetor (umbalde). Conta-se as repeticoes de cada numero.
1 vo i d bucke tSo r t ( i n t [ ] v e to r , i n t max) 23 long [ ] b a l d e s = new long [max+1] ;4 f o r ( i n t i = 0 ; i < v e t o r . l e n g t h ; i++) 5 ba l d e s [ v e t o r [ i ] ]++;6 7 // o l h a r cada ba l d e em ordem e t i r a r os numeros8 i n t i = 0 ;9 f o r ( i n t j = 0 ; j < ba l d e s . l e n g t h ; j++)
10 wh i l e ( b a l d e s [ j ] > 0 ) 11 ba l d e s [ j ] = ba l d e s [ j ] − 1 ;
12/1
![Page 39: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/39.jpg)
Bucket sort
Ideia: ordenacao de numeros inteiros
Cada elemento e representado por uma posicao em um vetor (umbalde). Conta-se as repeticoes de cada numero.
1 vo i d bucke tSo r t ( i n t [ ] v e to r , i n t max) 23 long [ ] b a l d e s = new long [max+1] ;4 f o r ( i n t i = 0 ; i < v e t o r . l e n g t h ; i++) 5 ba l d e s [ v e t o r [ i ] ]++;6 7 // o l h a r cada ba l d e em ordem e t i r a r os numeros8 i n t i = 0 ;9 f o r ( i n t j = 0 ; j < ba l d e s . l e n g t h ; j++)
10 wh i l e ( b a l d e s [ j ] > 0 ) 11 ba l d e s [ j ] = ba l d e s [ j ] − 1 ;12 v e t o r [ i ] = j ;
12/1
![Page 40: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/40.jpg)
Bucket sort
Ideia: ordenacao de numeros inteiros
Cada elemento e representado por uma posicao em um vetor (umbalde). Conta-se as repeticoes de cada numero.
1 vo i d bucke tSo r t ( i n t [ ] v e to r , i n t max) 23 long [ ] b a l d e s = new long [max+1] ;4 f o r ( i n t i = 0 ; i < v e t o r . l e n g t h ; i++) 5 ba l d e s [ v e t o r [ i ] ]++;6 7 // o l h a r cada ba l d e em ordem e t i r a r os numeros8 i n t i = 0 ;9 f o r ( i n t j = 0 ; j < ba l d e s . l e n g t h ; j++)
10 wh i l e ( b a l d e s [ j ] > 0 ) 11 ba l d e s [ j ] = ba l d e s [ j ] − 1 ;12 v e t o r [ i ] = j ;13 i = i + 1 ;
12/1
![Page 41: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/41.jpg)
Bucket sort
Ideia: ordenacao de numeros inteiros
Cada elemento e representado por uma posicao em um vetor (umbalde). Conta-se as repeticoes de cada numero.
1 vo i d bucke tSo r t ( i n t [ ] v e to r , i n t max) 23 long [ ] b a l d e s = new long [max+1] ;4 f o r ( i n t i = 0 ; i < v e t o r . l e n g t h ; i++) 5 ba l d e s [ v e t o r [ i ] ]++;6 7 // o l h a r cada ba l d e em ordem e t i r a r os numeros8 i n t i = 0 ;9 f o r ( i n t j = 0 ; j < ba l d e s . l e n g t h ; j++)
10 wh i l e ( b a l d e s [ j ] > 0 ) 11 ba l d e s [ j ] = ba l d e s [ j ] − 1 ;12 v e t o r [ i ] = j ;13 i = i + 1 ;14 15 16
12/1
![Page 42: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/42.jpg)
Bucket sort
Ideia: ordenacao de numeros inteiros
Cada elemento e representado por uma posicao em um vetor (umbalde). Conta-se as repeticoes de cada numero.
1 vo i d bucke tSo r t ( i n t [ ] v e to r , i n t max) 23 long [ ] b a l d e s = new long [max+1] ;4 f o r ( i n t i = 0 ; i < v e t o r . l e n g t h ; i++) 5 ba l d e s [ v e t o r [ i ] ]++;6 7 // o l h a r cada ba l d e em ordem e t i r a r os numeros8 i n t i = 0 ;9 f o r ( i n t j = 0 ; j < ba l d e s . l e n g t h ; j++)
10 wh i l e ( b a l d e s [ j ] > 0 ) 11 ba l d e s [ j ] = ba l d e s [ j ] − 1 ;12 v e t o r [ i ] = j ;13 i = i + 1 ;14 15 1617 r e t u r n ( v e t o r ) ;18
12/1
![Page 43: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/43.jpg)
Complexidades
Complexidade de tempo
Como cada numero e avaliado apenas uma vez, o Bucket sort temcomplexidade de tempo O(n).
13/1
![Page 44: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/44.jpg)
Complexidades
Complexidade de tempo
Como cada numero e avaliado apenas uma vez, o Bucket sort temcomplexidade de tempo O(n).
Complexidade de espaco
Somente viavel com inteiros ou poucas casas decimais. Cresce coma faixa de valores consideradas, ou seja, O(10|w |), com |w | sendo otamanho do numero.
13/1
![Page 45: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/45.jpg)
Complexidade de espaco do Bucket sort
Problema do banco: ordenacao de 40 milhoes de numeros
Se 1% das transacoes forem de mais de 1 milhao de reais, entao epossıvel usar 2 algoritmos de ordenacao:
14/1
![Page 46: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/46.jpg)
Complexidade de espaco do Bucket sort
Problema do banco: ordenacao de 40 milhoes de numeros
Se 1% das transacoes forem de mais de 1 milhao de reais, entao epossıvel usar 2 algoritmos de ordenacao:
Para transacoes de ate 1 milhao, usa-se o Bucket sort: 4segundos.
Para transacoes de mais de 1 milhao, pode-se usar o Bubblesort: 2.5 minutos.
14/1
![Page 47: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/47.jpg)
Complexidade de espaco do Bucket sort
Problema do banco: ordenacao de 40 milhoes de numeros
Se 1% das transacoes forem de mais de 1 milhao de reais, entao epossıvel usar 2 algoritmos de ordenacao:
Para transacoes de ate 1 milhao, usa-se o Bucket sort: 4segundos.
Para transacoes de mais de 1 milhao, pode-se usar o Bubblesort: 2.5 minutos.
Balanceamento de complexidades
Bucket sort: complexidade de tempo baixa e complexidade deespaco altaBubble sort: complexidade de tempo alta e complexidade deespaco baixa
14/1
![Page 48: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/48.jpg)
Ordenacao por selecao
Funcionamento
1 seleciona menor elemento de regiao nao ordenada
2 troca o primeiro elemento da regiao pelo menor elemento
3 diminui tamanho da regiao nao ordenada
15/1
![Page 49: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/49.jpg)
Algoritmo: ordenacao por selecao
1 vo i d s e l e c t i o n S o r t ( i n t [ ] v e t o r ) 2 f o r ( i n t i = 0 ; i < v e t o r . l eng th −1; i++)
16/1
![Page 50: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/50.jpg)
Algoritmo: ordenacao por selecao
1 vo i d s e l e c t i o n S o r t ( i n t [ ] v e t o r ) 2 f o r ( i n t i = 0 ; i < v e t o r . l eng th −1; i++) 3 i n t menor = v e t o r [ i ] ;
16/1
![Page 51: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/51.jpg)
Algoritmo: ordenacao por selecao
1 vo i d s e l e c t i o n S o r t ( i n t [ ] v e t o r ) 2 f o r ( i n t i = 0 ; i < v e t o r . l eng th −1; i++) 3 i n t menor = v e t o r [ i ] ;4 i n t menorI = i ;
16/1
![Page 52: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/52.jpg)
Algoritmo: ordenacao por selecao
1 vo i d s e l e c t i o n S o r t ( i n t [ ] v e t o r ) 2 f o r ( i n t i = 0 ; i < v e t o r . l eng th −1; i++) 3 i n t menor = v e t o r [ i ] ;4 i n t menorI = i ;56 f o r ( i n t j = i +1; j < v e t o r . l e n g t h ; j++)
16/1
![Page 53: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/53.jpg)
Algoritmo: ordenacao por selecao
1 vo i d s e l e c t i o n S o r t ( i n t [ ] v e t o r ) 2 f o r ( i n t i = 0 ; i < v e t o r . l eng th −1; i++) 3 i n t menor = v e t o r [ i ] ;4 i n t menorI = i ;56 f o r ( i n t j = i +1; j < v e t o r . l e n g t h ; j++) 7 i f ( v e t o r [ j ] < menor )
16/1
![Page 54: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/54.jpg)
Algoritmo: ordenacao por selecao
1 vo i d s e l e c t i o n S o r t ( i n t [ ] v e t o r ) 2 f o r ( i n t i = 0 ; i < v e t o r . l eng th −1; i++) 3 i n t menor = v e t o r [ i ] ;4 i n t menorI = i ;56 f o r ( i n t j = i +1; j < v e t o r . l e n g t h ; j++) 7 i f ( v e t o r [ j ] < menor ) 8 menorI = j ;9 menor = v e t o r [ j ] ;
16/1
![Page 55: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/55.jpg)
Algoritmo: ordenacao por selecao
1 vo i d s e l e c t i o n S o r t ( i n t [ ] v e t o r ) 2 f o r ( i n t i = 0 ; i < v e t o r . l eng th −1; i++) 3 i n t menor = v e t o r [ i ] ;4 i n t menorI = i ;56 f o r ( i n t j = i +1; j < v e t o r . l e n g t h ; j++) 7 i f ( v e t o r [ j ] < menor ) 8 menorI = j ;9 menor = v e t o r [ j ] ;
10 11
16/1
![Page 56: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/56.jpg)
Algoritmo: ordenacao por selecao
1 vo i d s e l e c t i o n S o r t ( i n t [ ] v e t o r ) 2 f o r ( i n t i = 0 ; i < v e t o r . l eng th −1; i++) 3 i n t menor = v e t o r [ i ] ;4 i n t menorI = i ;56 f o r ( i n t j = i +1; j < v e t o r . l e n g t h ; j++) 7 i f ( v e t o r [ j ] < menor ) 8 menorI = j ;9 menor = v e t o r [ j ] ;
10 11 1213 i n t aux = v e t o r [ i ] ; // t r o c a14 v e t o r [ i ] = menor ;15 v e t o r [ menorI ] = aux ;16 17
16/1
![Page 57: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/57.jpg)
Custo: ordenacao por selecao
Exercıcio 1
Qual e a funcao de custo considerando apenas comparacoes?
Exercıcio 2
Qual e a funcao de custo considerando apenas trocas?
Exercıcio 3: Qual e a complexidade?
Notacao O, Notacao Ω, Notacao Θ
17/1
![Page 58: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/58.jpg)
Algoritmo: ordenacao por insercao
1 vo i d i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;
18/1
![Page 59: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/59.jpg)
Algoritmo: ordenacao por insercao
1 vo i d i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;45 f o r ( i n t j = 1 ; j < n ; j++)
18/1
![Page 60: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/60.jpg)
Algoritmo: ordenacao por insercao
1 vo i d i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;45 f o r ( i n t j = 1 ; j < n ; j++) 6 i n t chave = v e t o r [ j ] ;
18/1
![Page 61: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/61.jpg)
Algoritmo: ordenacao por insercao
1 vo i d i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;45 f o r ( i n t j = 1 ; j < n ; j++) 6 i n t chave = v e t o r [ j ] ;7 i n t i = j − 1 ;
18/1
![Page 62: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/62.jpg)
Algoritmo: ordenacao por insercao
1 vo i d i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;45 f o r ( i n t j = 1 ; j < n ; j++) 6 i n t chave = v e t o r [ j ] ;7 i n t i = j − 1 ;89 // p rocu ra l u g a r de i n s e r c a o e d e s l o c a numeros
10 wh i l e ( i >= 0 && ve t o r [ i ] > chave ) 11 v e t o r [ i +1] = v e t o r [ i ] ;12 i = i − 1 ;13
18/1
![Page 63: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/63.jpg)
Algoritmo: ordenacao por insercao
1 vo i d i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;45 f o r ( i n t j = 1 ; j < n ; j++) 6 i n t chave = v e t o r [ j ] ;7 i n t i = j − 1 ;89 // p rocu ra l u g a r de i n s e r c a o e d e s l o c a numeros
10 wh i l e ( i >= 0 && ve t o r [ i ] > chave ) 11 v e t o r [ i +1] = v e t o r [ i ] ;12 i = i − 1 ;13 14 v e t o r [ i +1] = chave ;15 16
18/1
![Page 64: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/64.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;
19/1
![Page 65: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/65.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)
19/1
![Page 66: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/66.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;
19/1
![Page 67: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/67.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;
19/1
![Page 68: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/68.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14
19/1
![Page 69: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/69.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
19/1
![Page 70: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/70.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
19/1
![Page 71: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/71.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
19/1
![Page 72: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/72.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6
19/1
![Page 73: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/73.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6
19/1
![Page 74: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/74.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
19/1
![Page 75: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/75.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
19/1
![Page 76: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/76.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
19/1
![Page 77: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/77.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
19/1
![Page 78: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/78.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
chave = 12 5 6 1 9 6
19/1
![Page 79: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/79.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
chave = 12 5 6 1 9 6
2 5 6 6 9 6
19/1
![Page 80: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/80.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
chave = 12 5 6 1 9 6
2 5 6 6 9 6
2 5 5 6 9 6
19/1
![Page 81: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/81.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
chave = 12 5 6 1 9 6
2 5 6 6 9 6
2 5 5 6 9 6
2 2 5 6 9 6
19/1
![Page 82: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/82.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
chave = 12 5 6 1 9 6
2 5 6 6 9 6
2 5 5 6 9 6
2 2 5 6 9 6
1 2 5 6 9 6
19/1
![Page 83: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/83.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
chave = 12 5 6 1 9 6
2 5 6 6 9 6
2 5 5 6 9 6
2 2 5 6 9 6
1 2 5 6 9 6chave = 91 2 5 6 9 6
19/1
![Page 84: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/84.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
chave = 12 5 6 1 9 6
2 5 6 6 9 6
2 5 5 6 9 6
2 2 5 6 9 6
1 2 5 6 9 6chave = 91 2 5 6 9 6chave = 61 2 5 6 9 6
19/1
![Page 85: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/85.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
chave = 12 5 6 1 9 6
2 5 6 6 9 6
2 5 5 6 9 6
2 2 5 6 9 6
1 2 5 6 9 6chave = 91 2 5 6 9 6chave = 61 2 5 6 9 6
1 2 5 6 9 9
19/1
![Page 86: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/86.jpg)
Algoritmo: ordenacao por insercao
1 i n s e r t i o n S o r t ( i n t [ ] v e t o r ) 23 i n t n = v e t o r . l e n g t h ;4 f o r ( i n t j = 1 ; j<n ; j++)5 i n t chave = v e t o r [ j ] ;6 i n t i = j − 1 ;78 // d e s l o c a numeros9 wh i l e ( i >= 0 &&
10 v e t o r [ i ] > chave ) 1112 v e t o r [ i +1] = v e t o r [ i ] ;13 i = i − 1 ;14 15 // i n s e r e chave16 v e t o r [ i +1] = chave ;17 18
chave = 56 5 2 1 9 6
6 5 2 1 9 6
6 6 2 1 9 6
5 6 2 1 9 6chave = 65 6 2 1 9 6chave = 25 6 2 1 9 6
5 6 6 1 9 6
5 5 6 1 9 6
2 5 6 1 9 6
chave = 12 5 6 1 9 6
2 5 6 6 9 6
2 5 5 6 9 6
2 2 5 6 9 6
1 2 5 6 9 6chave = 91 2 5 6 9 6chave = 61 2 5 6 9 6
1 2 5 6 9 9
1 2 5 6 6 9
19/1
![Page 87: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/87.jpg)
Custo: ordenacao por insercao
Custo e complexidade
Melhor caso, notacao Ω
Pior Caso, notacao O
20/1
![Page 88: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/88.jpg)
Shell Sort
Inventado por Donald Shell em 1959
Primeiro a baixar a complexidade de ordenacao
Ideia
Similar ao Insertion Sort, mas compara uma sequencia deelementos distantes (com distancia variavel) em vez de elementosconsecutivos
21/1
![Page 89: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/89.jpg)
Shell Sort
Inventado por Donald Shell em 1959
Primeiro a baixar a complexidade de ordenacao
Ideia
Similar ao Insertion Sort, mas compara uma sequencia deelementos distantes (com distancia variavel) em vez de elementosconsecutivos
Complexidade empırica
Entre O(n1.2) e O(1.6n1.25)
21/1
![Page 90: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/90.jpg)
Quicksort
Quicksort
Tony Hoare, Moscou, Uniao Sovietica, 1960
Aplicacao original: ordenar dicionario russo-ingles
22/1
![Page 91: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/91.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4
23/1
![Page 92: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/92.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )
23/1
![Page 93: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/93.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]
23/1
![Page 94: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/94.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
23/1
![Page 95: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/95.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
1011 f o r ( x i n v e t o r )
23/1
![Page 96: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/96.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )
23/1
![Page 97: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/97.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )
23/1
![Page 98: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/98.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e
23/1
![Page 99: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/99.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )
23/1
![Page 100: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/100.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )16
23/1
![Page 101: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/101.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )16 17 q u i c k s o r t ( ve to rMenore s ) // o rdena r os menores18
23/1
![Page 102: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/102.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )16 17 q u i c k s o r t ( ve to rMenore s ) // o rdena r os menores18 q u i c k s o r t ( v e t o rMa i o r e s ) // o rdena r os ma io r e s19
23/1
![Page 103: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/103.jpg)
Pseudo-codigo: quicksort simplificado
1 i n t [ ] q u i c k s o r t ( v e t o r ) 2 i f ( tamanho ( v e t o r ) <= 1) 3 r e t u r n ( v e t o r ) // v e t o r j a o rdenado4 5 // p i v o t e e l emento de r e f e r e n c i a para o rdena r6 p i v o t = e s c o l h e r E r emov e r ( v e t o r )7 // c r i a r v e t o r e s de e l emento s menores e ma io r e s8 ve to rMenore s = new i n t [ tamanho ( v e t o r ) ]9 v e t o rMa i o r e s = new i n t [ tamanho ( v e t o r ) ]
1011 f o r ( x i n v e t o r ) 12 i f ( x <= p i v o t )13 inse reNoF im ( x , ve to rMenore s )14 e l s e15 inse reNoF im ( x , v e t o rMa i o r e s )16 17 q u i c k s o r t ( ve to rMenore s ) // o rdena r os menores18 q u i c k s o r t ( v e t o rMa i o r e s ) // o rdena r os ma io r e s19 r e t u r n ( j u n t a r ( vetorMenores , p i vo t , v e t o rMa i o r e s ) ) ;20
23/1
![Page 104: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/104.jpg)
Escolha do pivot
1 p i v o t = e s c o l h e r E r emov e r ( v e t o r )
custo do algoritmo depende da escolha do pivot
possibilidades
o primeiro/ultimo elementoaleatorioo elemento do meioa mediana entre o primeiro, meio e ultimo
24/1
![Page 105: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/105.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
25/1
![Page 106: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/106.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
25/1
![Page 107: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/107.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
25/1
![Page 108: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/108.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
25/1
![Page 109: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/109.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
25/1
![Page 110: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/110.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
0 2
25/1
![Page 111: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/111.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
0 2
0 2
25/1
![Page 112: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/112.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
0 2
0 2
0 2 2
25/1
![Page 113: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/113.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
0 2
0 2
0 2 2
0 2 2 3 5
25/1
![Page 114: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/114.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
0 2
0 2
0 2 2
0 2 2 3 5
0 2 2 3 5 5 6
25/1
![Page 115: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/115.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
0 2
0 2
0 2 2
0 2 2 3 5
0 2 2 3 5 5 6
7 7
25/1
![Page 116: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/116.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
0 2
0 2
0 2 2
0 2 2 3 5
0 2 2 3 5 5 6
7 7
7 7
25/1
![Page 117: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/117.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
0 2
0 2
0 2 2
0 2 2 3 5
0 2 2 3 5 5 6
7 7
7 7
0 2 2 3 5 5 6 6 7 7
25/1
![Page 118: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/118.jpg)
Simulacao: pivot – o primeiro elemento
6 7 5 5 2 0 6 2 3 7
5 5 2 0 6 2 3 6 7 7
3 5 2 0 2 5 6
2 2 0 3 5
0 2 2
0 2
0 2
0 2 2
0 2 2 3 5
0 2 2 3 5 5 6
7 7
7 7
0 2 2 3 5 5 6 6 7 7
25/1
![Page 119: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/119.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
26/1
![Page 120: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/120.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
26/1
![Page 121: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/121.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
26/1
![Page 122: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/122.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
26/1
![Page 123: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/123.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
26/1
![Page 124: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/124.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
26/1
![Page 125: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/125.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
26/1
![Page 126: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/126.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
26/1
![Page 127: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/127.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
26/1
![Page 128: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/128.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
2 4
26/1
![Page 129: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/129.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
2 4
2 4 4
26/1
![Page 130: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/130.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
2 4
2 4 4
2 4 4 5
26/1
![Page 131: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/131.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
2 4
2 4 4
2 4 4 5
2 4 4 5 6
26/1
![Page 132: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/132.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
2 4
2 4 4
2 4 4 5
2 4 4 5 6
2 4 4 5 6 7
26/1
![Page 133: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/133.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
2 4
2 4 4
2 4 4 5
2 4 4 5 6
2 4 4 5 6 7
2 4 4 5 6 7 8
26/1
![Page 134: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/134.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
2 4
2 4 4
2 4 4 5
2 4 4 5 6
2 4 4 5 6 7
2 4 4 5 6 7 8
2 4 4 5 6 7 8 9
26/1
![Page 135: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/135.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
2 4
2 4 4
2 4 4 5
2 4 4 5 6
2 4 4 5 6 7
2 4 4 5 6 7 8
2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 8 9
26/1
![Page 136: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/136.jpg)
Simulacao: pivot – o primeiro elemento – degeneracao
1 2 4 4 5 6 7 8 9
1 9 2 4 4 5 6 7 8
8 2 4 4 5 6 7 9
7 2 4 4 5 6 8
6 2 4 4 5 7
5 2 4 4 6
4 2 4 5
4 2 4
2 4
2 4
2 4 4
2 4 4 5
2 4 4 5 6
2 4 4 5 6 7
2 4 4 5 6 7 8
2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 8 9
26/1
![Page 137: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/137.jpg)
Pivot aleatorio
1 p u b l i c s t a t i c i n t e s c o l h e r P i v o t ( i n t [ ] v e t o r ) 23 Random s o r t e i o = new Random ( ) ;45 r e t u r n ( s o r t e i o . n e x t I n t ( v e t o r . l e n g t h ) ) ;6
27/1
![Page 138: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/138.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
28/1
![Page 139: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/139.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
28/1
![Page 140: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/140.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
28/1
![Page 141: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/141.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
4 4 5 6
28/1
![Page 142: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/142.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
4 4 5 6
4 4
28/1
![Page 143: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/143.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
4 4 5 6
4 4
4 4
28/1
![Page 144: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/144.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
4 4 5 6
4 4
4 4
4 4 5 6
28/1
![Page 145: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/145.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
4 4 5 6
4 4
4 4
4 4 5 6
1 2 4 4 5 6
28/1
![Page 146: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/146.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
4 4 5 6
4 4
4 4
4 4 5 6
1 2 4 4 5 6
8 9
28/1
![Page 147: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/147.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
4 4 5 6
4 4
4 4
4 4 5 6
1 2 4 4 5 6
8 9
8 9
28/1
![Page 148: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/148.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
4 4 5 6
4 4
4 4
4 4 5 6
1 2 4 4 5 6
8 9
8 9
1 2 4 4 5 6 7 8 9
28/1
![Page 149: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/149.jpg)
Simulacao: pivot aleatorio evita degeneracao
1 2 4 4 5 6 7 8 9
1 2 4 4 5 6 7 9 8
1 2 6 4 4 5
4 4 5 6
4 4
4 4
4 4 5 6
1 2 4 4 5 6
8 9
8 9
1 2 4 4 5 6 7 8 9
28/1
![Page 150: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/150.jpg)
Pivot mediana
1 p u b l i c s t a t i c i n t e s c o l h e rP i v o tMed i ana ( i n t [ ] v e t o r ) 23 i n t f im = ve t o r . l eng th −1;4 i n t meio = ( i n t ) v e t o r . l e n g t h /2 ;5 i n t comeco = 0 ;67 i f ( v e t o r [ f im ] > v e t o r [ meio ] ) 8 i f ( v e t o r [ meio ] > v e t o r [ comeco ] ) 9 r e t u r n ( meio ) ;
10 e l s e 11 r e t u r n ( comeco ) ;12 13 e l s e 14 i f ( v e t o r [ f im ] > v e t o r [ comeco ] ) 15 r e t u r n ( f im ) ;16 e l s e 17 r e t u r n ( comeco ) ;18 19 20
29/1
![Page 151: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/151.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
30/1
![Page 152: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/152.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
30/1
![Page 153: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/153.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
30/1
![Page 154: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/154.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
30/1
![Page 155: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/155.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
30/1
![Page 156: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/156.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
1 2 4 4
30/1
![Page 157: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/157.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
1 2 4 4
8 6 7 9
30/1
![Page 158: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/158.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
1 2 4 4
8 6 7 9
7 6 8
30/1
![Page 159: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/159.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
1 2 4 4
8 6 7 9
7 6 8
6 7
30/1
![Page 160: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/160.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
1 2 4 4
8 6 7 9
7 6 8
6 7
6 7
30/1
![Page 161: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/161.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
1 2 4 4
8 6 7 9
7 6 8
6 7
6 7
6 7 8
30/1
![Page 162: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/162.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
1 2 4 4
8 6 7 9
7 6 8
6 7
6 7
6 7 8
6 7 8 9
30/1
![Page 163: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/163.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
1 2 4 4
8 6 7 9
7 6 8
6 7
6 7
6 7 8
6 7 8 9
1 2 4 4 5 6 7 8 9
30/1
![Page 164: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/164.jpg)
Simulacao: pivot mediana
1 2 4 4 5 6 7 8 9
1 2 4 4 5 9 6 7 8
1 2 4 4
1 2 4
1 2 4
1 2 4 4
8 6 7 9
7 6 8
6 7
6 7
6 7 8
6 7 8 9
1 2 4 4 5 6 7 8 9
30/1
![Page 165: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/165.jpg)
Pivot mediana: propriedades
“Implementing Quicksort programs”, Robert Sedgewick
31/1
![Page 166: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/166.jpg)
Pivot mediana: propriedades
“Implementing Quicksort programs”, Robert Sedgewick
Estudos praticos sobre o Quicksort
31/1
![Page 167: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/167.jpg)
Pivot mediana: propriedades
“Implementing Quicksort programs”, Robert Sedgewick
Estudos praticos sobre o Quicksort
Recomenda o uso de pivot mediana
31/1
![Page 168: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/168.jpg)
Pivot mediana: propriedades
“Implementing Quicksort programs”, Robert Sedgewick
Estudos praticos sobre o Quicksort
Recomenda o uso de pivot mediana
Estatisticamente, o custo do Quicksort tende a ser menor paravetores maiores
31/1
![Page 169: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/169.jpg)
Quicksort: versoes
Existem muitas versoes do Quicksort
Em geral eles atuam no vetor original para fazer as particoes
economia de uso de espaco
Existem muitas otimizacoes
“A origem de todo o mal e a otimizacao precoce”, DonaldKnuth
32/1
![Page 170: Algoritmos de Ordenação - facom.ufu.bralbertini/1sem2014/alg/aulas/aula03.pdfRevis˜ao Conceitos Vetor: intvetor[]={5,1,7,3,0}; Vari´avel´ındice: posic˜ao para acesso de elemento](https://reader030.vdocuments.site/reader030/viewer/2022040622/5d32279c88c9939a158cf769/html5/thumbnails/170.jpg)
Custo: Quicksort simplificado
Custo e complexidade
Melhor caso, notacao Ω
altura da arvore de recursao
Pior Caso, notacao O
degeneracao
33/1