atal – prof. jorge figueiredo ordenação - 1 2004.2 at al análise e técnicas de algoritmos...
TRANSCRIPT
![Page 1: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/1.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 1
2004.2ATAL Análise e Técnicas de
Algoritmos
Análise de Algoritmos de Ordenação
![Page 2: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/2.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 2
2004.2ATAL Problema da Ordenação
• Formalmente pode assim ser definido:
OrdenaçãoEntrada: Uma seqüência de n números ‹a1, a2, ..., an›.Saída: Uma reordenação da seqûëncia de entrada ‹a'1, a'2, ..., a'n›, onde a'1 ≤ a'2 ≤ ... ≤ a'n.
Em geral, consideramos a seqüência de entrada como um array de n elementos.
![Page 3: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/3.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 3
2004.2ATAL Estratégia de
Ordenação• Alguns algoritmos clássicos de
ordenação utilizam divisão-e-conquista:– Quebra a entrada original em duas partes.– Recursivamente ordena cada uma das
partes.– Combina as duas partes ordenadas.
• Duas categorias de soluções:– Quebra simples, combinação difícil.– Quebra difícil, combinação simples.
![Page 4: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/4.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 4
2004.2ATAL Insertion Sort
A:1 j n
ORDENADO chave
InsertionSort(A, n)for j← 2 to n do
chave ← A[j] insere A[j] na parte ordenada A[1..j-1]i ← j – 1while i > 0 e A[i] > chave do
A[i + 1] ← A[i]i ← i – 1
A[i + 1] ← chave
![Page 5: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/5.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 5
2004.2ATAL Exemplo do Insertion
Sort45 7 13 23 2
![Page 6: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/6.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 6
2004.2ATAL Exemplo do Insertion
Sort45 7 13 23 2
![Page 7: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/7.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 7
2004.2ATAL Exemplo do Insertion
Sort45 7 13 23 2
7 45 13 23 2
![Page 8: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/8.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 8
2004.2ATAL Exemplo do Insertion
Sort45 7 13 23 2
7 45 13 23 2
![Page 9: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/9.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 9
2004.2ATAL Exemplo do Insertion
Sort45 7 13 23 2
7 45 13 23 2
7 13 45 23 2
![Page 10: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/10.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 10
2004.2ATAL Exemplo do Insertion
Sort45 7 13 23 2
7 45 13 23 2
7 13 45 23 2
![Page 11: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/11.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 11
2004.2ATAL Exemplo do Insertion
Sort45 7 13 23 2
7 45 13 23 2
7 13 45 23 2
7 13 23 45 2
![Page 12: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/12.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 12
2004.2ATAL Exemplo do Insertion
Sort45 7 13 23 2
7 45 13 23 2
7 13 45 23 2
7 13 23 45 2
![Page 13: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/13.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 13
2004.2ATAL Exemplo do Insertion
Sort45 7 13 23 2
7 45 13 23 2
7 13 45 23 2
7 13 23 45 2
2 7 13 23 45
![Page 14: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/14.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 14
2004.2ATAL Análise do Insertion
Sort• Pior caso:
– Entrada em ordem reversa.– O(n2)
• Caso médio:– O(n2)
• Melhor caso:– Entrada ordenada.– O(n)
![Page 15: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/15.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 15
2004.2ATAL MergeSort
• Partição simples.• Combinação mais trabalhosa.
3 72 1 5 47 34 20 10 9 23
3 72 1 5 47 34 20 10 9 23
9 10 20 23 341 3 5 47 72
1 3 5 9 10 20 23 34 47 72
simples
ordena
combina
quebra
difícil
![Page 16: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/16.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 16
2004.2ATAL Análise do MergeSort
• Requer resolução de recorrência.• Melhor caso = Caso médio = Pior caso.
– O(n.logn)MergeSort(A, inicio, fim)if inicio < fim then
meio ← (inicio + fim) div 2MergeSort(A, inicio, meio)MergeSort(A, meio + 1, fim)Intercala(A, inicio, meio,
fim)
![Page 17: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/17.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 17
2004.2ATAL QuickSort
• Proposto por C.A.R. Hoare em 1962.• Como o MergeSort, utiliza uma estratégia
de divisão-e-conquista.• A parte mais complicada é a quebra.• A combinação é simples.• Ao contrário do MergeSort, ordena in
place.• Ponto chave é encontrar uma estratégia
de particionamento eficiente.
![Page 18: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/18.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 18
2004.2ATAL QuickSort
• Divisão: escolher um pivô. Dividir o array em duas partes em torno do pivô.
≤ p p > p
pivô
• Conquista: Recursivamente ordenar os dois sub-arrays.
• Combinação: Trivial.
![Page 19: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/19.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 19
2004.2ATAL QuickSort
3 72 1 5 47 34 20 10 9 23
3 20 1 5 10 9 23 47 34 72
20 23 34 47 721 3 5 9 10
1 3 5 9 10 20 23 34 47 72
difícil
ordena
combina
quebra
simples
![Page 20: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/20.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 20
2004.2ATAL Escolha do Pivô
• Particionamento pode ser feito de diferentes formas.
• A principal decisão é escolher o pivô.– Primeiro elemento do array.– Último elemento do array.– Elemento médio do array.– Elemento que mais ocorre no array.– Elemento mais próximo da média
aritmética dos elementos do array.
![Page 21: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/21.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 21
2004.2ATAL Rotina de
Particionamento• Em nossa rotina, o pivô é o último elemento.
Particiona(A, L, R)p ← A[R]i ← Rfor j ← R – 1 downto L do
if A[j] > p theni ← i – 1swap A[i] ↔ A[j]
swap A[R] ↔ A[i]return i
![Page 22: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/22.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 22
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
![Page 23: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/23.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 23
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
ij
![Page 24: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/24.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 24
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i←j
![Page 25: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/25.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 25
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i←j
![Page 26: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/26.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 26
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i←j
![Page 27: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/27.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 27
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
ij
![Page 28: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/28.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 28
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i ←j
![Page 29: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/29.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 29
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i←j3 72 1 5 47 9 20 10 34 23
![Page 30: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/30.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 30
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i ←j3 72 1 5 47 9 20 10 34 23
![Page 31: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/31.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 31
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i←j
3 72 1 5 47 9 20 10 34 23
3 72 1 5 10 9 20 47 34 23
![Page 32: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/32.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 32
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i←j
3 72 1 5 47 9 20 10 34 23
3 72 1 5 10 9 20 47 34 23
![Page 33: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/33.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 33
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i←j
3 72 1 5 47 9 20 10 34 23
3 72 1 5 10 9 20 47 34 23
![Page 34: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/34.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 34
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i ←j
3 72 1 5 47 9 20 10 34 23
3 72 1 5 10 9 20 47 34 23
![Page 35: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/35.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 35
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
i←j
3 72 1 5 47 9 20 10 34 23
3 72 1 5 10 9 20 47 34 23
3 20 1 5 10 9 72 47 34 23
![Page 36: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/36.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 36
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
ij
3 72 1 5 47 9 20 10 34 23
3 72 1 5 10 9 20 47 34 23
3 20 1 5 10 9 72 47 34 23
![Page 37: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/37.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 37
2004.2ATAL Exemplo de
Particionamento3 72 1 5 47 34 20 10 9 23
3 72 1 5 47 9 20 10 34 23
3 72 1 5 10 9 20 47 34 23
3 20 1 5 10 9 72 47 34 23
3 20 1 5 10 9 23 47 34 72
![Page 38: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/38.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 38
2004.2ATAL QuickSort - Algoritmo
• A chamada inicial é QuickSort(A, 1, n)
QuickSort(A, inicio, fim)if inicio < fim then
meio ← particiona(A, inicio, fim)QuickSort(A, inicio, meio - 1)QuickSort(A, meio + 1, fim)
![Page 39: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/39.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 39
2004.2ATAL Análise do QuickSort
• Requer a resolução de uma relação de recorrência.
• Como nem sempre os dados são divididos em duas metades de mesmo tamanho:– Melhor caso, pior caso e caso médio podem
variar.• Vamos assumir:
– Tempo de partição é O(n).– A posição final do pivô é i.
![Page 40: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/40.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 40
2004.2ATAL Análise do QuickSort
• Melhor caso:– Pivô sempre fica no meio.– T(n) = 2T(n/2) + n– O(n.log n)
T(n) = 1 n = 1T(n) = T(n - i) + T(i – 1) + n nos demais casos
![Page 41: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/41.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 41
2004.2ATAL Análise do QuickSort
• Pior caso:– Pivô sempre fica na primeira ou última
posição.– T(n) = T(n - 1) + n– O(n2)
T(n) = 1 n = 1T(n) = T(n - i) + T(i – 1) + n nos demais casos
![Page 42: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/42.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 42
2004.2ATAL Análise do QuickSort
• Caso médio:– Pivô tem a mesma probabilidade 1/n de
cair em uma das n posições.– Ta(n) = n + 1/n ∑( Ta(i - 1) + Ta(n - i))– O(n.log n)
T(n) = 1 n = 1T(n) = T(n - i) + T(i – 1) + n nos demais casos
![Page 43: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/43.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 43
2004.2ATAL Ainda sobre QuickSort
• É talvez o algoritmo de ordenação mais usado.
• É fácil de implementar e muito rápido na prática.
• É tipicamente mais do que duas vezes mais rápido do que o MergeSort.
![Page 44: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/44.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 44
2004.2ATAL Ordenação por
Comparação• Todos os algoritmos de ordenação que
estudamos até agora utilizam comparação de elementos.
• Em uma ordenação por comparação, a ordem relativa de dois elementos ai e aj em uma seqüência é obtida utilizando testes de comparação:– ai < aj, ai ≤ aj, ai = aj, ai > aj e ai ≥ aj.
![Page 45: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/45.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 45
2004.2ATAL Ordenação por
Comparação• O melhor algoritmo que vimos para
ordenação é O(n.log n).• É possível encontrar uma melhor
solução?• Árvore de decisão pode nos ajudar a
desvendar isso.• É possível usar uma árvore de decisão
para visualizar ordenação por comparação.
![Page 46: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/46.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 46
2004.2ATAL Árvore de Decisão
a1:a3a2:a3
a1:a2
a1:a3 a2:a3<1, 2, 3> <2, 1, 3>
<2, 3, 1><3, 1, 2><1, 3, 2> <3, 2, 1>
≤ >
>
>>
>≤
≤
≤
≤
![Page 47: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/47.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 47
2004.2ATAL Árvore de Decisão
• Sort(<15, 4, 8>)
a1:a3a2:a3
a1:a2
a1:a3 a2:a3<1, 2, 3> <2, 1, 3>
<2, 3, 1><3, 1, 2><1, 3, 2> <3, 2, 1>
≤ 15 > 4
>
>>
>≤
≤
≤
≤
![Page 48: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/48.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 48
2004.2ATAL Árvore de Decisão
• Sort(<15, 4, 8>)
a1:a3a2:a3
a1:a2
a1:a3 a2:a3<1, 2, 3> <2, 1, 3>
<2, 3, 1><3, 1, 2><1, 3, 2> <3, 2, 1>
≤ >
15 > 8
>>
>≤
≤
≤
≤
![Page 49: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/49.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 49
2004.2ATAL Árvore de Decisão
• Sort(<15, 4, 8>)
a1:a3a2:a3
a1:a2
a1:a3 a2:a3<1, 2, 3> <2, 1, 3>
<2, 3, 1><3, 1, 2><1, 3, 2> <3, 2, 1>
≤ >
>
>>
>≤
≤
≤
4 ≤ 8
![Page 50: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/50.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 50
2004.2ATAL Árvore de Decisão
• Sort(<15, 4, 8>) = <4, 8, 15>
a1:a3a2:a3
a1:a2
a1:a3 a2:a3<1, 2, 3> <2, 1, 3>
<2, 3, 1><3, 1, 2><1, 3, 2> <3, 2, 1>
≤ >
>
>>
>≤
≤
≤
≤
![Page 51: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/51.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 51
2004.2ATAL
• As folhas de de uma árvore de decisão indicam uma possível ordenação para os elementos.– O número de permutações possível é n!.
• Para definir um limite inferior:– Uma árvore binária tem no máximo 2d
folhas, onde d é a sua profundidade.– Uma árvore binária com L folhas tem
profundidade de pelo menos log L .
![Page 52: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/52.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 52
2004.2ATAL
• O caminho mais longo da raiz de uma árvore de decisão para qualquer uma de suas folhas representa o pior caso do número de comparações.
• Para n elementos, temos n! folhas:– d = log n! – d ≥ log n!– log n! = Ө(n.log n)– d = Ω(n.log n)
![Page 53: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/53.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 53
2004.2ATAL Ordenação em Tempo
Linear• Nenhuma comparação é efetuada.• Counting Sort:
Counting SortEntrada: Um array de n números A = <a1, a2, ..., an›, em queai assume valores 1, 2, ..., k.Saída: Um array reordenado B = <b1, b2, ..., bn›. Array auxiliar: Um array C = <c1, c2, ..., ck›
![Page 54: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/54.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 54
2004.2ATAL Counting Sort
Counting Sort(A, B, k)for i ← 1 to k do
C[i] ← 0for j ← 1 to length[A] do
C[A[j]] ← C[A[j]] + 1for i ←2 to k do
C[i] ← C[i] + C[i - 1]for j ← length[A] downto 1 do
B[C[A[j]]] ← A[j]C[A[j]] ← C[A[j]] - 1
![Page 55: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/55.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 55
2004.2ATAL Exemplo
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
C:1 2 3 4 5 6
![Page 56: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/56.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 56
2004.2ATAL
• Laço 1
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
0 0 0 0 0 0C:1 2 3 4 5 6
![Page 57: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/57.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 57
2004.2ATAL
• Laço 2
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
0 0 1 0 0 0C:1 2 3 4 5 6
![Page 58: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/58.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 58
2004.2ATAL
• Laço 2
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
0 0 1 0 0 1C:1 2 3 4 5 6
![Page 59: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/59.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 59
2004.2ATAL
• Laço 2
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
0 0 1 1 0 1C:1 2 3 4 5 6
![Page 60: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/60.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 60
2004.2ATAL
• Laço 2
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
1 0 1 1 0 1C:1 2 3 4 5 6
![Page 61: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/61.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 61
2004.2ATAL
• Laço 2
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
1 0 2 1 0 1C:1 2 3 4 5 6
![Page 62: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/62.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 62
2004.2ATAL
• Laço 2
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
1 0 2 2 0 1C:1 2 3 4 5 6
![Page 63: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/63.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 63
2004.2ATAL
• Laço 2
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
2 0 2 2 0 1C:1 2 3 4 5 6
![Page 64: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/64.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 64
2004.2ATAL
• Laço 2
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
2 0 2 3 0 1C:1 2 3 4 5 6
![Page 65: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/65.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 65
2004.2ATAL
• Laço 3
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
2 0 2 3 0 1C:1 2 3 4 5 6
![Page 66: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/66.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 66
2004.2ATAL
• Laço 3
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
2 2 2 3 0 1C:1 2 3 4 5 6
![Page 67: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/67.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 67
2004.2ATAL
• Laço 3
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
2 2 4 3 0 1C:1 2 3 4 5 6
![Page 68: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/68.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 68
2004.2ATAL
• Laço 3
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
2 2 4 7 0 1C:1 2 3 4 5 6
![Page 69: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/69.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 69
2004.2ATAL
• Laço 3
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
2 2 4 7 7 1C:1 2 3 4 5 6
![Page 70: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/70.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 70
2004.2ATAL
• Laço 3
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
2 2 4 7 7 8C:1 2 3 4 5 6
![Page 71: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/71.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 71
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
B:1 2 3 4 5 6 7 8
2 2 4 7 7 8C:1 2 3 4 5 6
![Page 72: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/72.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 72
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
4B:1 2 3 4 5 6 7 8
2 2 4 6 7 8C:1 2 3 4 5 6
![Page 73: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/73.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 73
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 4B:1 2 3 4 5 6 7 8
1 2 4 6 7 8C:1 2 3 4 5 6
![Page 74: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/74.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 74
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 4B:1 2 3 4 5 6 7 8
1 2 4 6 7 8C:1 2 3 4 5 6
![Page 75: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/75.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 75
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 4 4B:1 2 3 4 5 6 7 8
1 2 4 5 7 8C:1 2 3 4 5 6
![Page 76: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/76.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 76
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 4 4B:1 2 3 4 5 6 7 8
1 2 4 5 7 8C:1 2 3 4 5 6
![Page 77: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/77.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 77
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 3 4 4B:1 2 3 4 5 6 7 8
1 2 3 5 7 8C:1 2 3 4 5 6
![Page 78: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/78.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 78
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 3 4 4B:1 2 3 4 5 6 7 8
1 2 3 5 7 8C:1 2 3 4 5 6
![Page 79: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/79.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 79
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 1 3 4 4B:1 2 3 4 5 6 7 8
0 2 3 5 7 8C:1 2 3 4 5 6
![Page 80: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/80.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 80
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 1 3 4 4B:1 2 3 4 5 6 7 8
0 2 3 5 7 8C:1 2 3 4 5 6
![Page 81: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/81.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 81
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 1 3 4 4 4B:1 2 3 4 5 6 7 8
0 2 3 4 7 8C:1 2 3 4 5 6
![Page 82: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/82.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 82
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 1 3 4 4 4B:1 2 3 4 5 6 7 8
0 2 3 4 7 8C:1 2 3 4 5 6
![Page 83: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/83.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 83
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 1 3 4 4 4 6B:1 2 3 4 5 6 7 8
0 2 3 4 7 7C:1 2 3 4 5 6
![Page 84: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/84.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 84
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 1 3 4 4 4 6B:1 2 3 4 5 6 7 8
0 2 3 4 7 7C:1 2 3 4 5 6
![Page 85: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/85.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 85
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 1 3 3 4 4 4 6B:1 2 3 4 5 6 7 8
0 2 2 4 7 7C:1 2 3 4 5 6
![Page 86: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/86.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 86
2004.2ATAL
• Laço 4
3 6 4 1 3 4 1 4A:1 2 3 4 5 6 7 8
1 1 3 3 4 4 4 6B:1 2 3 4 5 6 7 8
0 2 2 4 7 7C:1 2 3 4 5 6
![Page 87: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/87.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 87
2004.2ATAL Análise do Counting
Sort• A análise é trivial:
– O primeiro e terceiro laços correspondem a O(k).
– O segundo e quarto laços são O(n).– O tempo total é, portanto, O(n+k).– Na prática, k = O(n).– Logo, o counting sort é O(n).
• Counting Sort é estável.
![Page 88: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/88.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 88
2004.2ATAL
![Page 89: ATAL – Prof. Jorge Figueiredo Ordenação - 1 2004.2 AT AL Análise e Técnicas de Algoritmos Análise de Algoritmos de Ordenação](https://reader035.vdocuments.com.br/reader035/viewer/2022062818/5706384d1a28abb8238f6a59/html5/thumbnails/89.jpg)
ATAL – Prof. Jorge Figueiredo Ordenação - 89
2004.2ATAL