Aula 19 Custos de um algoritmo e funções de...
Transcript of Aula 19 Custos de um algoritmo e funções de...
![Page 1: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/1.jpg)
1
Aula 19
Custos de um algoritmo e funções de
complexidade
Prof. João Henrique Kleinschmidt
Material elaborado pelo prof. Jesús P. Mena-Chalco
3Q-2018
MCTA028 – Programação Estruturada
![Page 2: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/2.jpg)
2
... A =
0 n-1
![Page 3: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/3.jpg)
3
... A =
0 n-1
- O programa funciona (está correto)? - Como medir/mensurar a eficiência (em termos de tempo e espaço) do programa?
![Page 4: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/4.jpg)
4
... A =
0 n-1
- O programa funciona (está correto)? - Como medir/mensurar a eficiência (em termos de tempo e espaço) do programa?
Análise de algoritmos
AED1
Análise de algoritmos
![Page 5: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/5.jpg)
5
1997 2017
![Page 6: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/6.jpg)
6
Estudo de algoritmos
O projeto de algoritmos é influenciado pelo estudo de seus
comportamentos.
Os algoritmos podem ser estudados considerando, entre
outros, dois aspectos:
Tempo de execução.
Espaço ocupado (quantidade de memória).
![Page 7: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/7.jpg)
7
Medida de custo pela execução de um programa em uma plataforma real
Tais medidas são bastante inadequadas e os resultados
jamais devem ser generalizados:
Os resultados são dependentes do compilador que pode favorecer
algumas construções em detrimento de outras;
Os resultados dependem de hardware;
Quanto grandes quantidades de memória são utilizadas, as medidas de
tempo podem depender deste aspecto.
![Page 8: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/8.jpg)
8
Tais medidas são bastante inadequadas e os resultados
jamais devem ser generalizados:
Os resultados são dependentes do compilador que pode favorecer
algumas construções em detrimento de outras;
Os resultados dependem de hardware;
Quanto grandes quantidades de memória são utilizadas, as medidas de
tempo podem depender deste aspecto.
Apesar disso, há argumentos a favor de se obterem medidas
reais de tempo:
Exemplo: Quando há vários algoritmos distintos para resolver o
problema;
Assim, são considerados tanto os custos reais das operações como os
custos não aparentes, tais como alocação de memória, indexação, carga,
dentre outros.
Medida de custo pela execução de um programa em uma plataforma real
![Page 9: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/9.jpg)
9
Comparando algoritmos?
![Page 10: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/10.jpg)
10
Comparando algoritmos?
![Page 11: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/11.jpg)
11
Exercício 1
![Page 12: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/12.jpg)
12
Exercício 1
![Page 13: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/13.jpg)
13
Exercício 1
![Page 14: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/14.jpg)
14
Exercício 1
![Page 15: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/15.jpg)
15
Exercício 2
![Page 16: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/16.jpg)
16
Exercício 2
![Page 17: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/17.jpg)
17
Exercício 2
Depende do que?
![Page 18: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/18.jpg)
18
Exercício 2
no máximo?
no pior caso?
![Page 19: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/19.jpg)
19
![Page 20: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/20.jpg)
20
Busca de um elemento em um vetor crescente
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200 Vetor crescente
Custo para buscar um elemento em um vetor crescente: Melhor caso: 1 Pior caso: log(n) ?
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
![Page 21: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/21.jpg)
21
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Chave = 101
![Page 22: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/22.jpg)
22
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200 Inf = 0
Sup = 15
Chave = 101
![Page 23: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/23.jpg)
23
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200 Inf = 0
Sup = 15
Chave = 101
99 100 110 120 130 140 150 200 Inf = 8
Sup = 15
![Page 24: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/24.jpg)
24
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200 Inf = 0
Sup = 15
Chave = 101
99 100 110 120 130 140 150 200 Inf = 8
Sup = 15
99 100 110 Inf = 8
Sup = 10
![Page 25: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/25.jpg)
25
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200 Inf = 0
Sup = 15
Chave = 101
99 100 110 120 130 140 150 200 Inf = 8
Sup = 15
99 100 110 Inf = 8
Sup = 10
110 Inf = 10
Sup = 10
![Page 26: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/26.jpg)
26
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200 Inf = 0
Sup = 15
Chave = 101
99 100 110 120 130 140 150 200 Inf = 8
Sup = 15
99 100 110 Inf = 8
Sup = 10
110 Inf = 10
Sup = 10
Inf = 10
Sup = 9
![Page 27: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/27.jpg)
27
Busca de um elemento em um vetor crescente
![Page 28: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/28.jpg)
28
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200
11 22 33 44 55 66 77 88 99 100 110 120 130 140 150 200 Vetor crescente
Melhor caso: 1 Pior caso: n
Melhor caso: 1 Pior caso: log(n)
Vetor sem ordem
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
![Page 29: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/29.jpg)
29
N vs LG(N)
![Page 30: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/30.jpg)
30
Medida de custo por meio de um modelo matemático
Usa um modelo matemático baseado em um computador
idealizado.
Deve ser especificado o conjunto de operações e seus
custos de execuções.
É mais usual ignorar o custo de algumas das operações e
considerar apenas as mais significantes.
Em algoritmos de ordenação:
Consideramos o conjunto de comparações entre os elementos do
conjunto a ser ordenado e ignoramos as operações aritméticas, de
atribuição e manipulação de índices, caso existam.
![Page 31: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/31.jpg)
31
Função de complexidade
Para medir o custo de execução de um algoritmo, é comum
definir uma função de custo ou função de complexidade f.
Função de complexidade de tempo:
mede o tempo necessário para executar um algoritmo
para um problema de tamanho n.
Função de complexidade de espaço:
mede a memória necessária para executar um algoritmo
para um problema de tamanho n.
Utilizaremos f para denotar uma função de complexidade de tempo daqui para frente.
Na realidade, f não representa tempo diretamente, mas o número de vezes que
determinada operação (considerada relevante) é realizada.
![Page 32: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/32.jpg)
32
Atividade em aula
![Page 33: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/33.jpg)
33
ATIVIDADE 01: Hierarquias de funções
![Page 34: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/34.jpg)
34
ATIVIDADE 01: Hierarquias de funções
Cúbico Quadrático Quadrático Logarítmico
Maior hierarquia
Menor hierarquia
Ordem de
crescimento
![Page 35: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/35.jpg)
35
ATIVIDADE 02: Ordem de crescimento
![Page 36: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/36.jpg)
36
ATIVIDADE 02: Ordem de crescimento
Linear G1(N) = 2N-1 Linear G2(N) = 2N-1 Linearithmic G3(N) = N(lg(N)+1)
![Page 37: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/37.jpg)
37
G1
Linear G1(N) <= 2N-1
![Page 38: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/38.jpg)
38
G2
Linear G2(N) <= 2N-1
![Page 39: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/39.jpg)
39
G3
Linearithmic G3(N) <= N(lg(N)+1)
![Page 40: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/40.jpg)
40
log(N) , N , N*log(N)
log(n)
n
n*log(n)
![Page 41: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/41.jpg)
41
log(N) , N , N*log(N), N²
n²
![Page 42: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/42.jpg)
42
log(N) , N , N*log(N), N², N³
n³
![Page 43: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/43.jpg)
43
N², N , N³
n³
2.8074
n²
n 2.8074
![Page 44: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/44.jpg)
44 (*) Fonte: http://algs4.cs.princeton.edu/14analysis/
![Page 45: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/45.jpg)
45
Bônus:
Limite assintótico para a ordenação
![Page 46: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/46.jpg)
46
Ordenação
Algoritmos basedos em Comparações
Insertion sort
Selection sort
Bubble sort
Merge sort
Quick sort
Quick Insertion sort
Complexidade computacional
[limite matemático]
[limite assintótico para a ordenação]
![Page 47: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/47.jpg)
47
[Árvore de decisão] - Qualquer algoritmo de ordenação por comparação pode ser representado por uma árvore de decisão.
![Page 48: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/48.jpg)
48
[Árvore de decisão] - Qualquer algoritmo de ordenação por comparação pode ser representado por uma árvore de decisão. - O número de comparações efetuadas pelo algoritmo corresponde ao maior comprimento do caminho da raiz até uma de suas folhas.
![Page 49: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/49.jpg)
49
Fonte: http://users.informatik.uni-halle.de/~jopsi/dinf205/chap8.shtml
![Page 50: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/50.jpg)
50
Ordenação baseada em comparações
Sem perda de generalidade suponha que os valores a ser ordenados são sempre distintos
[Árvore de decisão]
[Cada nó folha está associada a uma permutação dos elementos do vetor]
![Page 51: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/51.jpg)
51
Ordenação baseada em comparações
Sem perda de generalidade suponha que os valores a ser ordenados são sempre distintos
[Árvore de decisão]
[Qualquer algoritmo de ordenação deverá percorrer um caminho desta árvore] da raiz até a folha
![Page 52: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/52.jpg)
52
Ordenação baseada em comparações
Sem perda de generalidade suponha que os valores a ser ordenados são sempre distintos
[Árvore de decisão]
[Qualquer algoritmo de ordenação deverá percorrer um caminho desta árvore] da raiz até a folha
Número de folhas = n!
![Page 53: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/53.jpg)
53
Ordenação baseada em comparações
Seja L o número de folhas de uma árvore binária e h sua altura. Então
h=3
L=8
![Page 54: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/54.jpg)
54
Ordenação baseada em comparações
Seja L o número de folhas de uma árvore binária e h sua altura. Então
h=3
L=8
![Page 55: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/55.jpg)
55
Ordenação baseada em comparações
Seja L o número de folhas de uma árvore binária e h sua altura. Então
h=3
L=8
![Page 56: Aula 19 Custos de um algoritmo e funções de complexidadeprofessor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 19 Custos de um algoritmo e funções de complexidade ... Análise](https://reader033.fdocumentos.tips/reader033/viewer/2022052718/5f062b2e7e708231d416a31f/html5/thumbnails/56.jpg)
56
Ordenação baseada em comparações
Algoritmos basedo em Comparaçães
Insertion sort
Selection sort
Bubble sort
Merge sort
Quick sort
Vários algoritmos aqui listados são ótimos pois a sua
complexidade computacional é