complexidade assint tica de...
TRANSCRIPT
![Page 1: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/1.jpg)
Análise de Algoritmos
Complexidade Assintótica de Programas
Letícia Rodrigues Bueno
![Page 2: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/2.jpg)
Análise de Algoritmos
Análise de Algoritmos
1. Introdução ;
![Page 3: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/3.jpg)
Análise de Algoritmos
Análise de Algoritmos
1. Introdução ;
2. Conceitos básicos ;
![Page 4: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/4.jpg)
Análise de Algoritmos
Análise de Algoritmos
1. Introdução ;
2. Conceitos básicos ;
3. Notação assintótica: notação O;
![Page 5: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/5.jpg)
Análise de Algoritmos
Análise de Algoritmos
1. Introdução ;
2. Conceitos básicos ;
3. Notação assintótica: notação O;
4. Notação assintótica: notações Ω, Θ, o e ω;
5. Métodos de análise de algoritmos;
6. Teoria da complexidade.
![Page 6: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/6.jpg)
Análise de Algoritmos
Introdução
• Objetivo : possibilitar medir eficiência de algoritmos;
Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. A guide to the theory of NP-Completeness,
W.H. Freeman and Company: New York, 1979.
![Page 7: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/7.jpg)
Análise de Algoritmos
Introdução
• Objetivo : possibilitar medir eficiência de algoritmos;• Analisar um algoritmo : prever os recursos que serão
necessários;
Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. A guide to the theory of NP-Completeness,
W.H. Freeman and Company: New York, 1979.
![Page 8: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/8.jpg)
Análise de Algoritmos
Introdução
• Objetivo : possibilitar medir eficiência de algoritmos;
• Analisar um algoritmo : prever os recursos que serãonecessários;
P1
A1A2
A3A4
A5
Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. A guide to the theory of NP-Completeness,
W.H. Freeman and Company: New York, 1979.
![Page 9: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/9.jpg)
Análise de Algoritmos
Introdução
• Objetivo : possibilitar medir eficiência de algoritmos;
• Analisar um algoritmo : prever os recursos que serãonecessários;
• Busca : Sequencial ou Binária?
P1 = buscaA1 = Sequencial
A2 = Binaria
Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. A guide to the theory of NP-Completeness,
W.H. Freeman and Company: New York, 1979.
![Page 10: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/10.jpg)
Análise de Algoritmos
Introdução
• Objetivo : possibilitar medir eficiência de algoritmos;
• Analisar um algoritmo : prever os recursos que serãonecessários;
• Busca : Sequencial ou Binária?
• Ordenação : Inserção, Seleção, Bolha, Quicksort,Heapsort, Mergesort ou Shellsort?
P2 = ordenacao
A1 = Insercao
A2 = Mergesort
A3 = Quicksort
Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. A guide to the theory of NP-Completeness,
W.H. Freeman and Company: New York, 1979.
![Page 11: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/11.jpg)
Análise de Algoritmos
Conceitos Básicos: definições
• modelo assumido : instruções executadas uma após aoutra, sem operações concorrentes (ou simultâneas);
![Page 12: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/12.jpg)
Análise de Algoritmos
Conceitos Básicos: definições
• modelo assumido : instruções executadas uma após aoutra, sem operações concorrentes (ou simultâneas);
• execução de uma operação toma uma unidade de tempo;
![Page 13: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/13.jpg)
Análise de Algoritmos
Conceitos Básicos: definições
• modelo assumido : instruções executadas uma após aoutra, sem operações concorrentes (ou simultâneas);
• execução de uma operação toma uma unidade de tempo;
• a memória é infinita;
![Page 14: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/14.jpg)
Análise de Algoritmos
Conceitos Básicos: definições
• modelo assumido : instruções executadas uma após aoutra, sem operações concorrentes (ou simultâneas);
• execução de uma operação toma uma unidade de tempo;
• a memória é infinita;
• problema com entrada de tamanho n: função de custoou função de complexidade f (n);
![Page 15: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/15.jpg)
Análise de Algoritmos
Conceitos Básicos: definições
• modelo assumido : instruções executadas uma após aoutra, sem operações concorrentes (ou simultâneas);
• execução de uma operação toma uma unidade de tempo;
• a memória é infinita;
• problema com entrada de tamanho n: função de custoou função de complexidade f (n);
• função de complexidade de tempo : número deexecuções de determinada operação consideradarelevante;
![Page 16: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/16.jpg)
Análise de Algoritmos
Conceitos Básicos: definições
• modelo assumido : instruções executadas uma após aoutra, sem operações concorrentes (ou simultâneas);
• execução de uma operação toma uma unidade de tempo;
• a memória é infinita;
• problema com entrada de tamanho n: função de custoou função de complexidade f (n);
• função de complexidade de tempo : número deexecuções de determinada operação consideradarelevante;
• função de complexidade de espaço : espaço dememória ocupada;
![Page 17: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/17.jpg)
Análise de Algoritmos
Conceitos Básicos: exemplo
Exemplo: calcular o fatorial de um número n.Tamanho da entrada do problema : n;
fatorial(n)1: fat ← 1;2: para (i ← 1; i ≤ n; i ++) faça // executa n vezes
3: fat ← fat ∗ i ;4: retorna fat
Complexidade de tempo: c1.n;
![Page 18: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/18.jpg)
Análise de Algoritmos
Conceitos Básicos: fatorial
Exemplo: calcular o fatorial de um número n.Tamanho da entrada do problema : n;
fatorial(n)1: fat ← 1;2: para (i ← 1; i ≤ n; i ++) faça // executa n vezes
3: fat ← fat ∗ i ; // tempo constante c1
4: retorna fat
Complexidade de tempo: c1.n;
![Page 19: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/19.jpg)
Análise de Algoritmos
Conceitos Básicos: melhor caso, pior caso e caso médio
Três cenários dependentes da entrada:
• Melhor caso : menor tempo de execução;
![Page 20: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/20.jpg)
Análise de Algoritmos
Conceitos Básicos: melhor caso, pior caso e caso médio
Três cenários dependentes da entrada:
• Melhor caso : menor tempo de execução;
• Pior caso : maior tempo de execução. Geralmente,priorizamos determinar o pior caso;
![Page 21: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/21.jpg)
Análise de Algoritmos
Conceitos Básicos: melhor caso, pior caso e caso médio
Três cenários dependentes da entrada:
• Melhor caso : menor tempo de execução;
• Pior caso : maior tempo de execução. Geralmente,priorizamos determinar o pior caso;
• Caso médio : média dos tempos de execução. Mais difícilde obter;
![Page 22: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/22.jpg)
Análise de Algoritmos
Conceitos Básicos: melhor caso, pior caso e caso médio
Exemplo : busca sequencial.Operação relevante: comparação de x com elementos de V ;
buscaSequencial(x ,V )1: i ← 1;2: enquanto (i ≤ n) e (V [i] 6= x) faça // executa n vezes no máximo
3: i ← i + 1;4: se i > n então “Busca sem sucesso”5: senão “Busca com sucesso”
Complexidade de tempo: n
![Page 23: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/23.jpg)
Análise de Algoritmos
Conceitos Básicos: melhor caso
Melhor caso da busca sequencial: x está em V [1]!
buscaSequencial(x ,V )1: i ← 1;2: enquanto (i ≤ n) e (V [i] 6= x) faça // executa n vezes no máximo
3: i ← i + 1;4: se i > n então “Busca sem sucesso”5: senão “Busca com sucesso”
Complexidade de tempo: 1
![Page 24: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/24.jpg)
Análise de Algoritmos
Conceitos Básicos: pior caso
Pior caso da busca sequencial: x está em V [n] ou não estáem V !
buscaSequencial(x ,V )1: i ← 1;2: enquanto (i ≤ n) e (V [i] 6= x) faça // executa n vezes no máximo
3: i ← i + 1;4: se i > n então “Busca sem sucesso”5: senão “Busca com sucesso”
Complexidade de tempo: n
![Page 25: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/25.jpg)
Análise de Algoritmos
Conceitos Básicos: caso médio
• Caso médio da busca sequencial: assumindo que xestá em V , f (n) = 1× p1 + 2× p2 + . . . + n × pn onde pi éprobabilidade de x estar na posição i ;
![Page 26: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/26.jpg)
Análise de Algoritmos
Conceitos Básicos: caso médio
• Caso médio da busca sequencial: assumindo que xestá em V , f (n) = 1× p1 + 2× p2 + . . . + n × pn onde pi éprobabilidade de x estar na posição i ;
• probabilidades são iguais : pi =1n ;
![Page 27: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/27.jpg)
Análise de Algoritmos
Conceitos Básicos: caso médio
• Caso médio da busca sequencial: assumindo que xestá em V , f (n) = 1× p1 + 2× p2 + . . . + n × pn onde pi éprobabilidade de x estar na posição i ;
• probabilidades são iguais : pi =1n ;
• f (n) = 1n (1
![Page 28: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/28.jpg)
Análise de Algoritmos
Conceitos Básicos: caso médio
• Caso médio da busca sequencial: assumindo que xestá em V , f (n) = 1× p1 + 2× p2 + . . . + n × pn onde pi éprobabilidade de x estar na posição i ;
• probabilidades são iguais : pi =1n ;
• f (n) = 1n (1 + 2
![Page 29: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/29.jpg)
Análise de Algoritmos
Conceitos Básicos: caso médio
• Caso médio da busca sequencial: assumindo que xestá em V , f (n) = 1× p1 + 2× p2 + . . . + n × pn onde pi éprobabilidade de x estar na posição i ;
• probabilidades são iguais : pi =1n ;
• f (n) = 1n (1 + 2 + 3
![Page 30: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/30.jpg)
Análise de Algoritmos
Conceitos Básicos: caso médio
• Caso médio da busca sequencial: assumindo que xestá em V , f (n) = 1× p1 + 2× p2 + . . . + n × pn onde pi éprobabilidade de x estar na posição i ;
• probabilidades são iguais : pi =1n ;
• f (n) = 1n (1 + 2 + 3 + . . .+ n)
![Page 31: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/31.jpg)
Análise de Algoritmos
Conceitos Básicos: caso médio
• Caso médio da busca sequencial: assumindo que xestá em V , f (n) = 1× p1 + 2× p2 + . . . + n × pn onde pi éprobabilidade de x estar na posição i ;
• probabilidades são iguais : pi =1n ;
• f (n) = 1n (1 + 2 + 3 + . . .+ n) = 1
n
(
n(n+1)2
)
![Page 32: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/32.jpg)
Análise de Algoritmos
Conceitos Básicos: caso médio
• Caso médio da busca sequencial: assumindo que xestá em V , f (n) = 1× p1 + 2× p2 + . . . + n × pn onde pi éprobabilidade de x estar na posição i ;
• probabilidades são iguais : pi =1n ;
• f (n) = 1n (1 + 2 + 3 + . . .+ n) = 1
n
(
n(n+1)2
)
= n+12
![Page 33: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/33.jpg)
Análise de Algoritmos
Conceitos Básicos: caso médio
• Caso médio da busca sequencial: assumindo que xestá em V , f (n) = 1× p1 + 2× p2 + . . . + n × pn onde pi éprobabilidade de x estar na posição i ;
• probabilidades são iguais : pi =1n ;
• f (n) = 1n (1 + 2 + 3 + . . .+ n) = 1
n
(
n(n+1)2
)
= n+12
• Complexidade de tempo: n+12 , ou seja, uma pesquisa
bem-sucedida examina aproximadamente metade dosregistros.
![Page 34: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/34.jpg)
Análise de Algoritmos
1: BuscaBinária(chave, lista[0 . . . n])2: inf ← −13: sup ← n4: enquanto inf < sup − 1 faça5: meio ← ⌊ inf+sup
2 ⌋6: se chave ≤ lista[meio] então7: sup ← meio8: senão9: inf ← meio
10: se chave = lista[sup] então11: retorna lista[sup]12: senão13: retorna elemento não encontrado
↑ ↑
inf sup
inicializ.
![Page 35: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/35.jpg)
Análise de Algoritmos
1: BuscaBinária(chave, lista[0 . . . n])2: inf ← −13: sup ← n4: enquanto inf < sup − 1 faça5: meio ← ⌊ inf+sup
2 ⌋6: se chave ≤ lista[meio] então7: sup ← meio8: senão9: inf ← meio
10: se chave = lista[sup] então11: retorna lista[sup]12: senão13: retorna elemento não encontrado
↑ ↑ ↑
inf meio sup
1a iter.
![Page 36: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/36.jpg)
Análise de Algoritmos
1: BuscaBinária(chave, lista[0 . . . n])2: inf ← −13: sup ← n4: enquanto inf < sup − 1 faça5: meio ← ⌊ inf+sup
2 ⌋6: se chave ≤ lista[meio] então7: sup ← meio8: senão9: inf ← meio
10: se chave = lista[sup] então11: retorna lista[sup]12: senão13: retorna elemento não encontrado
↑ ↑
inf sup
1a iter.
![Page 37: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/37.jpg)
Análise de Algoritmos
1: BuscaBinária(chave, lista[0 . . . n])2: inf ← −13: sup ← n4: enquanto inf < sup − 1 faça5: meio ← ⌊ inf+sup
2 ⌋6: se chave ≤ lista[meio] então7: sup ← meio8: senão9: inf ← meio
10: se chave = lista[sup] então11: retorna lista[sup]12: senão13: retorna elemento não encontrado
↑ ↑
inf sup
2a iter.
![Page 38: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/38.jpg)
Análise de Algoritmos
1: BuscaBinária(chave, lista[0 . . . n])2: inf ← −13: sup ← n4: enquanto inf < sup − 1 faça5: meio ← ⌊ inf+sup
2 ⌋6: se chave ≤ lista[meio] então7: sup ← meio8: senão9: inf ← meio
10: se chave = lista[sup] então11: retorna lista[sup]12: senão13: retorna elemento não encontrado
↑ ↑ ↑
inf meio sup
2a iter.
![Page 39: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/39.jpg)
Análise de Algoritmos
1: BuscaBinária(chave, lista[0 . . . n])2: inf ← −13: sup ← n4: enquanto inf < sup − 1 faça5: meio ← ⌊ inf+sup
2 ⌋6: se chave ≤ lista[meio] então7: sup ← meio8: senão9: inf ← meio
10: se chave = lista[sup] então11: retorna lista[sup]12: senão13: retorna elemento não encontrado
↑ ↑
inf sup
3a iter.
![Page 40: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/40.jpg)
Análise de Algoritmos
1: BuscaBinária(chave, lista[0 . . . n])2: inf ← −13: sup ← n4: enquanto inf < sup − 1 faça5: meio ← ⌊ inf+sup
2 ⌋6: se chave ≤ lista[meio] então7: sup ← meio8: senão9: inf ← meio
10: se chave = lista[sup] então11: retorna lista[sup]12: senão13: retorna elemento não encontrado
↑ ↑
inf sup
4a iter.
![Page 41: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/41.jpg)
Análise de Algoritmos
1: BuscaBinária(chave, lista[0 . . . n])2: inf ← −13: sup ← n4: enquanto inf < sup − 1 faça5: meio ← ⌊ inf+sup
2 ⌋6: se chave ≤ lista[meio] então7: sup ← meio8: senão9: inf ← meio
10: se chave = lista[sup] então11: retorna lista[sup]12: senão13: retorna elemento não encontrado
↑ ↑
inf sup
5a iter.
![Page 42: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/42.jpg)
Análise de Algoritmos
Complexidade da Busca Binária
• Cada iteração (linhas 4–9) divide ao meio a faixa entre infe sup.
• Termina quando faixa tem apenas 1 elemento.
• Quantas iterações, dividindo ao meio, até 1 elemento?
•
i ∨ ...
![Page 43: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/43.jpg)
Análise de Algoritmos
Complexidade da Busca Binária
• Cada iteração (linhas 4–9) divide ao meio a faixa entre infe sup.
• Termina quando faixa tem apenas 1 elemento.
• Quantas iterações, dividindo ao meio, até 1 elemento?
• Equivalente: quantas vezes devo dobrar até chegar a n?
i ∧ ...
![Page 44: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/44.jpg)
Análise de Algoritmos
Complexidade da Busca Binária
• Cada iteração (linhas 4–9) divide ao meio a faixa entre infe sup.
• Termina quando faixa tem apenas 1 elemento.
• Quantas iterações, dividindo ao meio, até 1 elemento?
• Equivalente: quantas vezes devo dobrar até chegar a n?
i ∧ ...
2i = (n) ⇔ i = log2(n)
![Page 45: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/45.jpg)
Análise de Algoritmos
Complexidade da Busca Binária
1
1
(log
2n)×
11: BuscaBinária(chave, lista[0 . . . n])2: inf ← −13: sup ← n4: enquanto inf < sup − 1 faça5: meio ← ⌊ inf+sup
2 ⌋6: se chave ≤ lista[meio].chave então7: sup ← meio8: senão9: inf ← meio
10: se chave = lista[sup].chave então11: retorna lista[sup]12: senão13: retorna elemento não encontrado
Total operações: 1 + log2 n, para n elementos.
![Page 46: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/46.jpg)
Análise de Algoritmos
Conceitos Básicos: busca sequencial × busca binária
• Problema de busca no pior caso : busca binária levag(n) = 1 + log2 n passos e busca sequencial leva f (n) = npassos;
![Page 47: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/47.jpg)
Análise de Algoritmos
Conceitos Básicos: busca sequencial × busca binária
• Problema de busca no pior caso : busca binária levag(n) = 1 + log2 n passos e busca sequencial leva f (n) = npassos;
• Vamos comparar f (n) = n e g(n) = 1 + log2 n:
![Page 48: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/48.jpg)
Análise de Algoritmos
Conceitos Básicos: busca sequencial × busca binária
• Problema de busca no pior caso : busca binária levag(n) = 1 + log2 n passos e busca sequencial leva f (n) = npassos;
• Vamos comparar f (n) = n e g(n) = 1 + log2 n:
![Page 49: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/49.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Análise assintótica dos programas: mede como f (n) secomporta conforme n aumenta indefinidamente;
![Page 50: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/50.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Análise assintótica dos programas: mede como f (n) secomporta conforme n aumenta indefinidamente;
• Uma função f (n) é O(g(n)) (notação f (n) = O(g(n))) seexistem duas constantes positivas c e m tais quef (n) ≤ c.g(n), para todo n ≥ m;
n
f, g
f(n)
c.g(n)
m
![Page 51: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/51.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Análise assintótica dos programas: mede como f (n) secomporta conforme n aumenta indefinidamente;
• Uma função f (n) é O(g(n)) (notação f (n) = O(g(n))) seexistem duas constantes positivas c e m tais quef (n) ≤ c.g(n), para todo n ≥ m;
• f (n) = O(g(n)): g(n) é limite superior para f (n);
n
f, g
f(n)
c.g(n)
m
![Page 52: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/52.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Análise assintótica dos programas: mede como f (n) secomporta conforme n aumenta indefinidamente;
• Uma função f (n) é O(g(n)) (notação f (n) = O(g(n))) seexistem duas constantes positivas c e m tais quef (n) ≤ c.g(n), para todo n ≥ m;
• f (n) = O(g(n)): g(n) é limite superior para f (n);
n
f, g
f(n)
c.g(n)
m
![Page 53: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/53.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Qual a complexidade assintótica da busca sequencial e dabusca binária?
![Page 54: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/54.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Qual a complexidade assintótica da busca sequencial e dabusca binária?
• Busca sequencial: n = O(n), para c ≥ 1, m = 1;
![Page 55: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/55.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Qual a complexidade assintótica da busca sequencial e dabusca binária?
• Busca sequencial: n = O(n), para c ≥ 1, m = 1;• Busca binária: 1 + log2 n = O(log2 n), para c ≥ 1, m = 2;
![Page 56: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/56.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
• Qual a complexidade assintótica da busca sequencial e dabusca binária?
• Busca sequencial: n = O(n), para c ≥ 1, m = 1;• Busca binária: 1 + log2 n = O(log2 n), para c ≥ 1, m = 2;• Como 1 + log2 n = O(n), c ≥ 1, m = 1, a busca binária é
assintoticamente mais eficiente que a busca sequencial!
![Page 57: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/57.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Vamos analisar o trecho de código abaixo:
1: sum1← 0;2: para (i = 1; i ≤ n; i ++) faça
![Page 58: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/58.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Vamos analisar o trecho de código abaixo:
1: sum1← 0;2: para (i = 1; i ≤ n; i ++) faça // n vezes3: para (j = 1; j ≤ n; j ++) faça
![Page 59: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/59.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Vamos analisar o trecho de código abaixo:
1: sum1← 0;2: para (i = 1; i ≤ n; i ++) faça // n vezes3: para (j = 1; j ≤ n; j ++) faça // n vezes4: sum1← sum1 + 1;
![Page 60: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/60.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Vamos analisar o trecho de código abaixo:
1: sum1← 0;2: para (i = 1; i ≤ n; i ++) faça // n vezes3: para (j = 1; j ≤ n; j ++) faça // n vezes4: sum1← sum1 + 1; // n2 vezes
![Page 61: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/61.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Vamos analisar o trecho de código abaixo:
1: sum1← 0;2: para (i = 1; i ≤ n; i ++) faça // n vezes3: para (j = 1; j ≤ n; j ++) faça // n vezes4: sum1← sum1 + 1; // n2 vezes
Complexidade assintótica: O(n2)!
![Page 62: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/62.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Outro trecho de código:
1: sum2← 0;2: para (i = 1; i ≤ n; i ++) faça3: para (j = 1; j ≤ i ; j ++) faça4: sum2← sum2 + 1;
Complexidade assintótica:
![Page 63: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/63.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Outro trecho de código:
1: sum2← 0;2: para (i = 1; i ≤ n; i ++) faça3: para (j = 1; j ≤ i ; j ++) faça4: sum2← sum2 + 1;
Complexidade assintótica:
1+2+3+. . .+n =
n∑
j=1
j =n(n + 1)
2=
n2 + n2
= O(n2), c ≥ 1,m = 1.
![Page 64: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/64.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Apenas mais um trecho de código:
1: sum3← 0;2: para (i = 1; i ≤ n; i ++) faça3: para (j = i ; j ≤ n; j ++) faça4: sum3← sum3 + 1;
![Page 65: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/65.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Apenas mais um trecho de código:
1: sum3← 0;2: para (i = 1; i ≤ n; i ++) faça3: para (j = i ; j ≤ n; j ++) faça4: sum3← sum3 + 1;
Complexidade assintótica:
![Page 66: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/66.jpg)
Análise de Algoritmos
Notação Assintótica: Notação O
Apenas mais um trecho de código:
1: sum3← 0;2: para (i = 1; i ≤ n; i ++) faça3: para (j = i ; j ≤ n; j ++) faça4: sum3← sum3 + 1;
Complexidade assintótica:
n+(n−1)+. . .+1 =
n∑
j=1
j =n(n + 1)
2=
n2 + n2
= O(n2), c ≥ 1,m = 1.
![Page 67: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/67.jpg)
Análise de Algoritmos
Ordenação por inserção - Exemplo
O R D E N A
![Page 68: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/68.jpg)
Análise de Algoritmos
Ordenação por inserção - Exemplo
O R D E N A
O R D E N A
![Page 69: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/69.jpg)
Análise de Algoritmos
Ordenação por inserção - Exemplo
O R D E N A
O R D E N A
O R D E N A
![Page 70: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/70.jpg)
Análise de Algoritmos
Ordenação por inserção - Exemplo
O R D E N A
O R D E N A
O R D E N A
D O R E N A
![Page 71: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/71.jpg)
Análise de Algoritmos
Ordenação por inserção - Exemplo
O R D E N A
O R D E N A
O R D E N A
D O R E N A
D E O R N A
![Page 72: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/72.jpg)
Análise de Algoritmos
Ordenação por inserção - Exemplo
O R D E N A
O R D E N A
O R D E N A
D O R E N A
D E O R N A
D E N O R A
![Page 73: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/73.jpg)
Análise de Algoritmos
Ordenação por inserção - Exemplo
O R D E N A
O R D E N A
O R D E N A
D O R E N A
D E O R N A
D E N O R A
A D E N O R
![Page 74: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/74.jpg)
Análise de Algoritmos
Ordenação por Inserção - Algoritmo
1: Ordenação-Inserção( A);2: for (j = 2; j ≤ n; j ++) do3: key ← A[j];
// Insere A[j] na sequência ordenada A[1..j − 1]4: i ← (j − 1);5: while (i > 0) and (A[i] > chave) do6: A[i + 1]← A[i];7: i ← (i − 1);8: A[i + 1]← chave;
![Page 75: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/75.jpg)
Análise de Algoritmos
Ordenação por Inserção - Complexidade Local
1: Ordenação-Inserção( A); Frequência2: for (j = 2; j ≤ n; j ++) do
![Page 76: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/76.jpg)
Análise de Algoritmos
Ordenação por Inserção - Complexidade Local
1: Ordenação-Inserção( A); Frequência2: for (j = 2; j ≤ n; j ++) do (n − 1) + 1
3: key ← A[j];
![Page 77: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/77.jpg)
Análise de Algoritmos
Ordenação por Inserção - Complexidade Local
1: Ordenação-Inserção( A); Frequência2: for (j = 2; j ≤ n; j ++) do (n − 1) + 1
3: key ← A[j]; n − 1
4: i ← (j − 1);
![Page 78: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/78.jpg)
Análise de Algoritmos
Ordenação por Inserção - Complexidade Local
1: Ordenação-Inserção( A); Frequência2: for (j = 2; j ≤ n; j ++) do (n − 1) + 1
3: key ← A[j]; n − 1
4: i ← (j − 1); n − 1
5: while (i > 0) and (A[i] > chave) do
![Page 79: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/79.jpg)
Análise de Algoritmos
Ordenação por Inserção - Complexidade Local
1: Ordenação-Inserção( A); Frequência2: for (j = 2; j ≤ n; j ++) do (n − 1) + 1
3: key ← A[j]; n − 1
4: i ← (j − 1); n − 1
5: while (i > 0) and (A[i] > chave) do∑n
j=2 tj
6: A[i + 1]← A[i];
![Page 80: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/80.jpg)
Análise de Algoritmos
Ordenação por Inserção - Complexidade Local
1: Ordenação-Inserção( A); Frequência2: for (j = 2; j ≤ n; j ++) do (n − 1) + 1
3: key ← A[j]; n − 1
4: i ← (j − 1); n − 1
5: while (i > 0) and (A[i] > chave) do∑n
j=2 tj
6: A[i + 1]← A[i];∑n
j=2(tj − 1)
7: i ← (i − 1);
![Page 81: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/81.jpg)
Análise de Algoritmos
Ordenação por Inserção - Complexidade Local
1: Ordenação-Inserção( A); Frequência2: for (j = 2; j ≤ n; j ++) do (n − 1) + 1
3: key ← A[j]; n − 1
4: i ← (j − 1); n − 1
5: while (i > 0) and (A[i] > chave) do∑n
j=2 tj
6: A[i + 1]← A[i];∑n
j=2(tj − 1)
7: i ← (i − 1);∑n
j=2(tj − 1)
8: A[i + 1]← chave;
![Page 82: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/82.jpg)
Análise de Algoritmos
Ordenação por Inserção - Complexidade Local
1: Ordenação-Inserção( A); Frequência2: for (j = 2; j ≤ n; j ++) do (n − 1) + 1
3: key ← A[j]; n − 1
4: i ← (j − 1); n − 1
5: while (i > 0) and (A[i] > chave) do∑n
j=2 tj
6: A[i + 1]← A[i];∑n
j=2(tj − 1)
7: i ← (i − 1);∑n
j=2(tj − 1)
8: A[i + 1]← chave; n − 1onde tj é o número de vezes que o teste do laço while éexecutado para cada valor de j .
![Page 83: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/83.jpg)
Análise de Algoritmos
Ordenação por Inserção - Análise Assintótica
Operação relevante : comparações entre chaves
1: Ordenação-Inserção( A);2: for (j = 2; j ≤ n; j ++) do3: key ← A[j];
// Insere A[j] na sequência ordenada A[1..j − 1]4: i ← (j − 1);5: while (i > 0) and (A[i] > chave) do6: A[i + 1]← A[i];7: i ← (i − 1);8: A[i + 1]← chave;
![Page 84: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/84.jpg)
Análise de Algoritmos
Ordenação por Inserção - Análise Assintótica
1: Ordenação-Inserção( A);2: for (j = 2; j ≤ n; j ++) do3: key ← A[j];
// Insere A[j] na sequência ordenada A[1..j − 1]4: i ← (j − 1);5: while (i > 0) and (A[i] > chave) do6: A[i + 1]← A[i];7: i ← (i − 1);8: A[i + 1]← chave;
Melhor caso: sequência já ordenada;Linha 2 executa n − 1 vezes: O(n)!
![Page 85: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/85.jpg)
Análise de Algoritmos
Ordenação por Inserção - Análise Assintótica
1: Ordenação-Inserção( A);2: for (j = 2; j ≤ n; j ++) do3: key ← A[j];
// Insere A[j] na sequência ordenada A[1..j − 1]4: i ← (j − 1);5: while (i > 0) and (A[i] > chave) do6: A[i + 1]← A[i];7: i ← (i − 1);8: A[i + 1]← chave;
Pior caso: sequência invertida;Linha 2 executa n − 1 vezes e linha 5 executa:
2 + 3 + . . .+ n =n
∑
j=2
j =(n − 1)(n + 2)
2=
n2 + n − 22
= O(n2).
![Page 86: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/86.jpg)
Análise de Algoritmos
Ordenação por Inserção - Análise Assintótica
1: Ordenação-Inserção( A);2: for (j = 2; j ≤ n; j ++) do3: key ← A[j];
// Insere A[j] na sequência ordenada A[1..j − 1]4: i ← (j − 1);5: while (i > 0) and (A[i] > chave) do6: A[i + 1]← A[i];7: i ← (i − 1);8: A[i + 1]← chave;
Pior caso: sequência invertida;
n2 + n − 22
= O(n2), c ≥ 1,m = 2.
![Page 87: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/87.jpg)
Análise de Algoritmos
Funções de complexidade frequentes
![Page 88: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/88.jpg)
Análise de Algoritmos
Funções de complexidade frequentes
![Page 89: Complexidade Assint tica de Programasprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materia...Análise de Algoritmos Introdução •Objetivo: possibilitar medir eficiência de](https://reader036.vdocuments.net/reader036/viewer/2022062603/5f0263e27e708231d40409d7/html5/thumbnails/89.jpg)
Análise de Algoritmos
Bibliografia
CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. e STEIN, C.Introduction to Algorithms, 3a edição, MIT Press, 2009.
GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. Aguide to the theory of NP-Completeness, W.H. Freeman andCompany: New York, 1979.
SZWARCFITER, J. L. e MARKENZON, L. Estruturas de Dados eseus Algoritmos, LTC, 1994.
ZIVIANI, N. Projeto de Algoritmos: com implementações em Pascal eC, 2a edição, Cengage Learning, 2009.